Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 嵌套表单未保存在rails 3.1中_Ruby On Rails_Models_Nested Forms_Nested Attributes - Fatal编程技术网

Ruby on rails 嵌套表单未保存在rails 3.1中

Ruby on rails 嵌套表单未保存在rails 3.1中,ruby-on-rails,models,nested-forms,nested-attributes,Ruby On Rails,Models,Nested Forms,Nested Attributes,没有问题,我肯定,但我似乎找不到我的错误。症状集正在使用正确的用户id保存,但嵌套的症状消失。请注意,用户模型结构与Rails教程中的相同(只是它有许多:症状集) 型号: class SymptomSet < ActiveRecord::Base attr_accessible :symptoms, :symptoms_attributes belongs_to :user has_many :symptoms, :dependent => :destroy acce

没有问题,我肯定,但我似乎找不到我的错误。症状集正在使用正确的用户id保存,但嵌套的症状消失。请注意,用户模型结构与Rails教程中的相同(只是它有许多:症状集)

型号:

class SymptomSet < ActiveRecord::Base
  attr_accessible :symptoms, :symptoms_attributes
  belongs_to :user
  has_many :symptoms, :dependent => :destroy
  accepts_nested_attributes_for :symptoms,  allow_destroy: true
end

class Symptom < ActiveRecord::Base
  attr_accessible :name, :duration, :symptom_set_id
  belongs_to :symptom_set
end
类症状集:破坏
接受\u嵌套的\u属性\u用于:症状,允许\u销毁:true
结束
类症状
控制器:

class SymptomSetsController < ApplicationController
    before_filter :signed_in_user, only: [:create, :new]

    def new
      @symptom_set = SymptomSet.new
      3.times do
        symptom = @symptom_set.symptoms.build
      end
    end

    def create
      @symptom_set = current_user.symptom_sets.build(params[:symptom_sets])
      if @symptom_set.save
        flash[:success] = "Symptoms submitted!"
        redirect_to root_url
      else
        render 'static_pages/home'
      end
    end
class SympleSetController
以及以下观点:

<%= simple_form_for @symptom_set, :html => { :class => 'form-inline' } do |f| %>

    <%= f.fields_for :symptoms do |builder| %>
   <%= render 'symptom_fields', f: builder %>
    <% end %>

    <div class="actions"><%= f.submit %></div>
<% end %>
{:class=>'forminline'}do | f |%>
以及部分:

       <%= f.input :name, 
                   :collection=> ["Cough", "Fever", "Headache", "Lethargy"], 
                    label: "Symptom", 
                    prompt: "Select a symptom",
                   :input_html => { :class => "span3" }%>  

       <%= f.input :duration, 
                   :collection => 1..14, 
                    label: "Duration",
                    prompt: "How many days?" %>
[“咳嗽”、“发烧”、“头痛”、“嗜睡”],
标签:“症状”,
提示:“选择一个症状”,
:input_html=>{:class=>“span3”}%>
1..14, 
标签:“持续时间”,
提示:“多少天?”%%>
最后,rails服务器控制台输出以下内容:

参数:{“utf8”=>“✓", "真实性令牌“=>”s7ksuk40m2r76nq4pgeeptpkcexfnip4ttpfshszqk=“,”症状集“=>{”症状属性“=>{”0“=>{”名称“=>”咳嗽“,”破坏“=>”假“,”持续时间“=>”2“,”1 “=>{”name“=>”Fever“,“_destroy”=>”false“,”duration“=>”2“,”2“=>{”name“=>”,“_destroy”=>”1“,”duration“=>”,”commit“=>”创建症状集“}” 用户加载(0.4ms)选择“用户”。*从“用户”中选择“用户”。“记住令牌”='OH6\u nuvySNjd6AbTuDunsw'限制1

(0.1ms)开始 SQL(0.4ms)插入“症状集”(“已创建”、“已更新”、“用户id”)值($1、$2、$3) 返回“id”[“创建时间”,2013年2月5日星期二21:12:07 UTC+00:00],“更新时间”,星期二,2月5日20 13 21:12:07 UTC+00:00],“用户id”,1]] (1.1ms)提交

我会尝试更改:

@symptom\u set=current\u user.symptom\u set.build(参数[:symptom\u set])

致:

@symptom\u set=当前用户。症状集。新建(参数[:症状集])

我不知道
build
是否能在那里工作

如果调用了
symptom\u sets
,并且正在发送嵌套表单属性的参数,则还检查终端日志上的参数

编辑:


我真的认为你的参数的名字应该是单数的
symptom\u set
。检查。

构建->新建:已工作。&:症状集->:症状集:可能也有帮助。