ruby-on-rails – Ruby on Rails Form有两个参数
发布时间:2020-12-17 03:17:30 所属栏目:百科 来源:网络整理
导读:我有以下代码,但我无法理解如何为form_for([@ article,@ article.comments.build])进行路由. ???????? ??????????标题: ??????????%= @ article.title% ???????? p strongText:/strong %= @article.text % /p h2Add a comment:/h2 %= form_for([@article,
我有以下代码,但我无法理解如何为form_for([@ article,@ article.comments.build])进行路由.
???????? ??????????标题: ??????????<%= @ article.title%> ???????? <p> <strong>Text:</strong> <%= @article.text %> </p> <h2>Add a comment:</h2> <%= form_for([@article,@article.comments.build]) do |f| %> <p> <%= f.label :commenter %><br> <%= f.text_field :commenter %> </p> <p> <%= f.label :body %><br> <%= f.text_area :body %> </p> <p> <%= f.submit %> </p> <% end %> <%= link_to 'Back',articles_path %> | <%= link_to 'Edit',edit_article_path(@article) %> 解决方法
Rails可以暗示来自form_for的路由
例如 <%= form_for(@article) do |f| %> ... <% end %> 如果@article是新的而不在数据库中,那么rails可以推断出你正在创建一个新的,然后路由就是 articles_path(@article),action: :create 如果@article已存在于数据库中,那么rails可以推断出您正在编辑现有对象,因此路径是. article_path(@article),action: :update 这适用于嵌套路由以及您拥有的示例代码. <%= form_for([@article,@article.comments.build]) do |f| %> 它知道父路由是文章,子路由是注释,因为它是一个新的注释,路由将是 article_comments_path(@article,@article.comments.build),action: :create 如果存在评论,则它将是更新操作 article_comment_path(@article,@comment),action: :update 任何form_for,link_to等都可以暗示来自对象的路径. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |