簡體   English   中英

Rails以單一資源形式嵌套資源

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM