2011-09-09 43 views
1

我遇到了一個Rails問題,不會在引導操作中發送任何內容。 我正在使用一個嵌套的複數資源,可能或可能不是問題來自哪裏(Rails有form_for和單數 資源URL的問題)的單數資源。Rails在單一資源表單上嵌套資源

無論如何,我有這個在我的路線:

resource :event do 
    resources :actions, :only => [:create], :controller => "events/actions" 
end 

的觀點:有

def create 
    @event = Event.find(params[:event_id]) 
    @action = @event.actions.create(params[:action]) 
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 %> 

的創建操作。 但是,當我從Rails獲得參數時,沒有任何東西存在。 :(

PARAMS:

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 

這到底是怎麼回事

編輯:

如果我刪除 「:遠程=>真正的」 線在我看來, 我看到在我的參數中,我得到一個參數「:format」 ,它似乎是事件的ID。

但是,我仍然沒有得到行動參數。 :(

+0

刪除遠程並查看日誌 – apneadiving

+0

我做到了這一點,我看到一個格式參數(而不是event_id)與id通過。但我仍然沒有看到行動的參數?我不明白。 –

+0

請更新您的問題與這些額外的信息 – apneadiving

回答

1

理想我想看到這些事件&行爲模式 - 我懷疑這就是問題所在如果沒有看到這些,有幾個建議:

  • 是「accepts_nested_attributes_for:行動」中設置。事件模型?

  • 取下兩個模型的任何「attr_accessible」線&看看事情的工作。(請記住,您需要在父模型設置爲嵌套形式的訪問屬性)

  • '行動'似乎是一個模型的粗魯名稱。這是可能的Rails是覆蓋「行動」的方法與相關的實際行動

希望這有助於東西 - 我建議張貼的車型,如果你仍然不能找到一個解決方案。

+0

你是對的。由於Rails使用params [:action]來進行實際操作(而不是模型),所以我的模型把所有東西搞亂了。我已經重新命名了它,現在它工作得很好。謝謝! –