当我尝试提交新状态时,我会得到以下内容。我有一个工作正常的注册表,不知道这里发生了什么。感谢帮助。
def status_params
params.require(:status).permit(:type_id, :user_id)
end
和
def create
@status = Status.new(status_params)
respond_to do |format|
if @status.save
请求
{"utf8"=>"✓",
"authenticity_token"=>"gZPV4FfSm2eb+pGPbAAqI4zA/LHJiAsRkHdJar/aU3G63oBiaLr55zPoRv3K+7EmelN2Nofj/CTZ+qPtoYih5w==",
"type"=>{"user_id"=>"3"},
"type_id"=>"Ocular",
"commit"=>"Create Status"}
我的观点
<div class="field">
<%= f.label :user_id %><br>
<%= select(:user_id, @user_options) %>
</div>
<div class="field">
<%= f.label :type_id %><br>
<%= select_tag :type_id, options_for_select(mg_types) %>
</div>
答案 0 :(得分:2)
你的参数不在status
哈希。所以,
试试这个 -
def status_params
params.permit(:type_id, type[:user_id])
end
答案 1 :(得分:1)
我可以在这里看到多个问题:
status
哈希值中。type
的属性哈希,其中包含user_id
,这与您列入白名单的属性不一致。type_id
的属性,其中包含字符串(而不是ID)。type
和type_id
两个冲突,因为Rails会在Status
模型上设置这些属性,而另一个可能会覆盖另一个。