2015-05-12 66 views
0

当我尝试提交新状态时,我会看到下面的内容。我有一个工作正常的注册表单,不知道这里发生了什么。感谢帮助。参数丢失或值为空:状态

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> 
+1

不能真正跟随问题所在。 –

+0

'“type”=> {“user_id”=>“3”}'什么是“类型”?我认为它应该是''user_id“=>”3“' – pangpang

+0

该类型允许我从当前用户列表中选择集合。 – Stephen

回答

2

你PARAMS不是status哈希值。所以, 试试这个 -

def status_params 
    params.permit(:type_id, type[:user_id]) 
end 
+0

没有为我工作。我正在使用此表单中的集合下拉选择。这与地位表和登记表有所不同。这可能是问题吗? – Stephen

+0

@StephenCagigal .......你可以请你给我看params。 –

1

我在这里可以看到多个问题:

  1. 张贴的参数不裹在status哈希值。
  2. 您正在发布名为type的属性哈希,其中包含user_id,这与您的白名单属性不一致。
  3. 您还发布了一个名为type_id的属性,其中包含一个字符串(而不是一个id)。
  4. 发布typetype_id冲突,因为Rails将在Status模型上设置这些属性,一个可能会覆盖另一个。
+0

为什么这些参数适用于我的注册表格? DEF registration_params params.require(:注册).permit(:最后,:第一,:地址,:城市,:状态:邮政,:国家,:类别) 端 – Stephen

+0

@StephenCagigal因为那些PARAMS包裹在'登记'哈希像 - {:registration => {:last =>'last_name',:first_name =>'first_name}} –

相关问题