1

我正在尝试为事件记录创建一个新的 EventPlace。我已将 Event 设置为 Accepts_nested_attributes_for :event_places 以及我认为的以下代码:

<div id="add_venue_form" style="border:2px solid black; padding: 5px;">
<% form_for @event, :html => {:name => "form2"} do |f| -%>
    <% f.fields_for @event_place do |v| -%>
      <%= v.text_field :place_id %>
    <% end -%>
    <a class="button" style="margin-left:10px;margin-top:4px;" href="javascript:document.form2.submit();" onclick="this.blur();"><span>Save</span></a>

<% end -%>

当我在字段中添加一个 ID 号并单击保存按钮时,它给了我这个错误:

Processing EventController#update (for 127.0.0.1 at 2012-05-24 15:43:39) [PUT]
Parameters: {"id"=>"48404", "action"=>"update", "controller"=>"event", 
    "_method"=>"put", "event"=>{"event_place"=>{"place_id"=>"3"}}}
SQL (0.1ms)   SET NAMES UTF8
Redirected to http://localhost:3001/event/list
Filter chain halted as [#<Proc:0x00000001094746e0@/Users/anthonylassiter/.rbenv/versions/ree-1.8.7 2012.02/lib/ruby/gems/1.8/gems/actionpack-2.3.10/lib/action_controller/verification.rb:82>] rendered_or_redirected.
Completed in 8ms (DB: 0) | 302 Found [http://localhost/events/48404]

我的更新方法

 def update
     @event = Event.find(params[:id])
     if @event.update_attributes(params[:event])
       redirect_to index
     end
 end

看起来参数是正确的。它似乎甚至没有在我的 event_controller 上点击我的更新方法,而是导致一些内部错误并尝试重定向到不存在的 /list,但是如果更新正在工作,我不应该需要它。

4

2 回答 2

1

参数不正确,event_places_attributes你必须有 r 参数...尝试 在 fields_for 中@event.event_places.build使用:event_places

于 2012-05-24T21:10:20.080 回答
1

在您的控制器(或其超类之一)中的某处,您verify用于限制可以发出的请求(或者您正在使用的插件可能称为验证)。记录的请求未通过其中一个验证步骤,因此 rails 将其重定向。

于 2012-05-24T21:32:17.540 回答