[英]Rails nested resource on a singular resource form
我遇到了Rails無法在操作參數中發布任何內容的問題。 我正在使用帶有嵌套的復數資源的單數資源,這可能是也可能不是問題出處(Rails的form_for和單數資源URL都有問題)。
無論如何,我的路線上有這個:
resource :event do
resources :actions, :only => [:create], :controller => "events/actions"
end
風景:
<%= form_for([@event, Action.new], :remote => true) do |f| %>
<div class="field">
<%= f.label :team_id %>
<br />
<%= f.text_field :team_id %>
</div>
<div class="field">
<%= f.label :message %>
<br />
<%= f.text_field :message %>
</div>
<div class="field">
<%= f.label :score %>
<br />
<%= f.number_field :score %>
</div>
<br />
<%= f.submit "Update score" %> or <%= link_to "cancel", "#", :id => "cancel" %>
<% end %>
創建動作:
def create
@event = Event.find(params[:event_id])
@action = @event.actions.create(params[:action])
end
好的,很標准,那里沒有后顧之憂。 但是,當我從Rails獲得參數時,就什么也沒有了。 :(
參數:
Started POST "/event/actions.4e67f09349ae71090c00000e"
Processing by Events::ActionsController#create as
Parameters: {"utf8"=>"Γ£ô", "authenticity_token"=>"stuff", "commit"=>"Update score"}
Completed 500 Internal Server Error in 31ms
這里發生了什么?
編輯:
如果刪除視圖中的“:remote => true”行,則會看到在我的參數中得到了一個參數“:format”,它似乎是事件的ID。
但是,我仍然沒有獲得動作參數。 :(
理想情況下,我希望看到那些事件和動作模型-我懷疑這就是問題所在。 沒有看到這些,一些建議:
在事件模型中是否設置了'accepts_nested_attributes_for:action'?
從兩個模型中刪除所有“ attr_accessible”行,然后查看是否工作正常。 (請記住,您需要為父模型中的嵌套表單設置可訪問屬性)
“動作”似乎是一個不恰當的模型名稱。 Rails可能會用與實際動作相關的內容覆蓋“ action”方法
希望這會有所幫助-如果您仍然找不到解決方案,建議您發布模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.