休斯頓,我們有一個問題:Rails5,嵌套形式,不確定PARAM
class FirstModel
has_many :merged_models
has_many :second_models, :through => :merged_models
end
class SecondModel
has_many :merged_models
has_many :first_models, :through => :merged_models
end
class MergedModel
belongs_to :first_model
belongs_to :second_model
end
形式:
<%= form_for(first_model) do |f| %>
<%= f.fields_for :merged_model do |ff| %>
<%= ff.label :date %>
<%= ff.date_select :start_date %>
問題:
處理由FirstModelsController#創建的HTML參數: {「utf8」=>「✓」, 「authenticity_token」=>「f + D8AaVzM6ahrUyo/nwxISFEleVrXGxo8m30sIiLIe7gvG8J9KfONjuT09j6z3M4Rvw +「,」「,」「,」「,」「, 「start_date(2i)」=>「2」, 「start_date(3i)」=>「28」,「second_model_id」=>「1」}},「commit」=>「創建」} 未允許的參數:merged_model未經許可參數: merged_model
第一種模式的控制器的強PARAMS:
params.require(:first_model).permit(:first_name, :last_name, merged_models_attributes: [:id, :start_date])
第一種模式acccepts合併模型嵌套的屬性:
accepts_nested_attributes_for :merged_models
但是,創建FirstModel後,MergedModel不會被創建。試圖形式來創建它:
<%= f.fields_for :merged_model [first_model.merged_models.build] do |ff| %>
不過的了:
MergedModel沒有隱式轉換成整數
完全不明白是什麼意思..
也試過從FirstModel的創作動作中創建一個新的MergedModel,伴隨着一聲:
@merge_model = MergedModel.create!
,並得到了同樣的錯誤 - 沒有隱式轉換...
誰能解釋一下嗎?我感覺它將我的MergedModel的參數陣列傳遞給MergedModel的參數......?我完全迷失在這裏......
你的表單應該有'fields_for:merged_models'而不是'merged_model' – rlecaro2
我很高興它的工作。我們都去過那裏。 – rlecaro2