我無法找到的東西,會在正確的方向引導。其他人對嵌套資源的類似問題似乎在解決accepts_nested_attributes_for
…這並不是我想要做的。我並沒有試圖從父母那裏拯救孩子,我試圖直接從孩子那裏拯救。和嵌套資源routes.rb中使用自定義to_param,怎麼能強參數允許創建/更新允許?
在我的routes.rb,我嵌套我的資源
resources :parents, param: :parent do
resources :children, param: :child
end
parent
和child
表都有自己的id
列,但也有在列parent
和child
唯一索引分別,這點我是要在URL中使用而不是id
。
這是圍繞工作正常瀏覽要每個控制器的show
,edit
和index
行動。
問題是也有例外節約數據。
我希望這個問題的根源並不歸結爲一個字段中child
表也稱爲child
爲這就是我用來覆蓋模型to_param
,需要繼續保持這種辦法。
導航到編輯屏幕:http://example.com/parents/harry/children/sally/edit和形式力推提交,返回此NoMethodError例外:
NoMethodError at /parents/harry/children/sally
undefined method `permit' for "sally":String
我敢肯定,這個問題是值得做的如何我強參數線在children_controller.rb
。我可以添加到require
的:parent
哈希和:child
可能?
def children_params
params.require(:child).permit(:child, :date_of_birth, :nickname)
end
更新1(由PARAMS):下面是請求參數:
{
"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"fAkBvy1pboi8TvwYh8sPDJ6n2wynbHexm/MidHruYos7AqwlKO/09kvBGyWAwbe+sy7+PFAIqKwPouIaE34usg==",
"child"=>"sally",
"commit"=>"Update Child",
"controller"=>"children",
"action"=>"update",
"parent_parent"=>"harry"
}
其他實例變量在範圍內出錯時:
@parent
<Parent id: 1, parent: "harry", description: "", user_id: 1, created_at: "2015-06-27 12:00:15", updated_at: "2015-06-27 12:00:15">
@child
<Child id: 1, child: "sally", date_of_birth: nil, parent_id: 1, nickname: nil, created_at: "2015-06-27 12:00:15", updated_at: "2015-06-27 12:00:15">
你可以發佈參數日誌? – Pavan
@Pavan我不敢相信我錯過了這一點。可以,雖然我現在已經離開了大約8小時。當我回來時,我會盡快更新我的問題。 – Turgs
@Pavan我已經添加了他們。 – Turgs