我正在使用Rails 5.我有这个模型
class ConfidentialMemo < ApplicationRecord
belongs_to :scenario
belongs_to :scenario_role
end
在我看来,我设置了这个下拉菜单,用于选择要填入“scneairo_role”字段的字段......
<%= f.collection_select :scenario_role, @scenario.roles, :id, :name, include_blank: false %>
在我的控制器的create方法中,我有这个
@confidential_memo = ConfidentialMemo.new(confidential_memo_params)
…
private
def confidential_memo_params
params.require(:confidential_memo).permit(:description, :scenario_id, :scenario_role)
end
但是我收到了错误
ScenarioRole(#70207639353420) expected, got String(#70207645188180)
这个错误是什么意思,更重要的是,我需要调整什么才能成功保存我的模型?
答案 0 :(得分:0)
在collection_select方法和控制器参数方法中将:scenario_role
更改为:scenario_role_id
。您的表单正在输出并发送一个ID(以字符串的形式),但如果您只是尝试将ID分配给@note.scenario_role
,则它会以相同类型的消息失败。