9
假設用戶模型 將Rails4與strong_parameters結合使用。嵌套屬性的強參數在空數組時返回「未經許可的參數」
class User < ActiveRecord::Base
has_secure_password
accepts_nested_attributes_for :identity
// rest of code omitted for brevity
end
如果我指的是導遊,我應該能夠做到
def user_params
params.require(:user).permit(:email, identity_attributes: [])
end
讓每個identity_attributes不論其名稱或號碼的mass_assignment。但這種運行在一個「不允許的參數:identity_attributes」
但是,如果我指定的identity_attributes它的工作原理
def user_params
params.require(:user).permit(:email, identity_attributes: [:last_name, :first_name])
end
我有身份的許多屬性,我將能夠通過用戶來mass_assign他們沒有指定所有的他們。
我錯過了什麼嗎?這是一個錯誤嗎?
乾杯
感謝你是正確的,當你有一個一對多的關係(似乎是合乎邏輯的指定'很多部分'中的哪個對象應該更新),但似乎並非如此,1對1關係(沒有指定identity.id,它工作正常)。問題是關於在嵌套屬性是空數組的文檔中提供的示例^ _ ^(並且這種方法在我看到的情況下不起作用) – phron
OOps今天上午重新嘗試,即使對於1到-1關係...如果沒有提供嵌套的對象ID,它似乎刪除原始記錄並重新創建一個新的而不是更新現有的(!!)。當strong_parameters和nested_attributes !!!文檔不是很清楚! Ĥave揮動乾杯 – phron
@ d34n5你是偉大的:)。但我想知道爲什麼mongoid在文檔中錯過了這件重要的事情。 –