2014-02-08 135 views
0

我目前正在学习RoR,并且在理解辅助方法时遇到了问题。 这个例子来自ruby指南。导轨中的辅助方法

所以,当我在这个例子中单击提交表单时,我在控制器中调用create方法。但是,当我点击“返回”按钮时,我会去index行动。

<%= form_for :post, url: posts_path do |f| %> 
    <p> 
    <%= f.label :title %><br> 
    <%= f.text_field :title %> 
    </p> 

    <p> 
    <%= f.label :text %><br> 
    <%= f.text_area :text %> 
    </p> 

    <p> 
    <%= f.submit %> 
    </p> 
<% end %> 

<%= link_to "Back", posts_path %> 

为什么同一个网址posts_path(这是一个辅助方法,不是吗?)我有不同的结果?

+0

浏览器中的后退按钮与Ruby on Rails无关。您的索引页上是否有这种表单?在那种情况下,你在索引页面上,你发布了一个表单,在你的浏览器中“返回”,所以你去了你的页面,这是索引。 – MrDanA

回答

1

HTTP方法是在你的情况

method: POST, posts_path -> create action 
method: GET, posts_path -> index action 

综观rake routes | grep post结果不同会给你一些想法

+0

现在,我看到了:)非常感谢你 – bkowalczyyk

0

重定向使用GET,而形式使用POST。

0

区别在于表单提交POST请求到posts_path而后退按钮a GET。这是Rails处理其资源的常用方式。查看rails docs了解更多信息