【问题标题】:form_for not calling specified actionform_for 未调用指定操作
【发布时间】:2016-12-06 03:48:55
【问题描述】:

我在 Rails 应用程序中有一个 Party 模型,需要通过表单对其进行更新。在我的派对展示视图 (show.html.erb) 中,我有一个以以下开头的表单:

  <%= form_for @party, :url => {:action => "update" } do |f|%>

在我的缔约方控制器中,我有:

def update
 @party = Party.find(party_params[:id])
 if @party.update(party_params)
   redirect_to 'show'
 else
  render '_rsvp'
end
end

但是,这个方法没有被调用。我一直在看这个——我错过了什么?!

【问题讨论】:

  • 试试这个:&lt;%= form_for @party, :url =&gt; {:action =&gt; "update"}, method: :put do |f|%&gt;

标签: ruby-on-rails controller form-for


【解决方案1】:

当使用form_for 助手时,您不需要指定url,因为rails 使用@party.new_record? 来确定是发布到/parties 还是/parties/:id。如果您在呈现表单的操作中适当地设置了@party,则以下内容应该适用于createupdate 操作。

<%= form_for @party do |f|%>
  <!-- fields -->
<% end %>

我建议阅读form_for helper 的文档,该文档通过示例对此进行了解释。

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

【讨论】:

    猜你喜欢
    • 2017-05-19
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    相关资源
    最近更新 更多