Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Html 无法为rails中的嵌套模型表单在新对象之间创建关联_Html_Ruby On Rails_Ruby - Fatal编程技术网

Html 无法为rails中的嵌套模型表单在新对象之间创建关联

Html 无法为rails中的嵌套模型表单在新对象之间创建关联,html,ruby-on-rails,ruby,Html,Ruby On Rails,Ruby,我一直在观察,并试图用自己的双手写下这个例子。 但是我在创建表单的步骤上遇到了麻烦 它需要在调查和问题之间建立关联。 但是在我的rails应用程序中无法建立这种关联,因此表单中不会出现任何问题 这是密码 调查模式: class Survey < ActiveRecord::Base attr_accessible :name, :questions has_many :questions, :dependent => :destroy accepts_nested_att

我一直在观察,并试图用自己的双手写下这个例子。 但是我在创建表单的步骤上遇到了麻烦

它需要在调查和问题之间建立关联。 但是在我的rails应用程序中无法建立这种关联,因此表单中不会出现任何问题

这是密码

调查模式:

class Survey < ActiveRecord::Base
  attr_accessible :name, :questions
  has_many :questions, :dependent => :destroy
  accepts_nested_attributes_for :questions

end
class Question < ActiveRecord::Base
  attr_accessible :context, :survey_id
  belongs_to :survey
end
  # GET /surveys/new
  # GET /surveys/new.json
  def new
    @survey = Survey.new
    3.times {@survey.questions.build}


    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @survey }
    end
  end
form.html.erb中的问题部分

  <% f.fields_for :questions do |builder|%>
    <%= builder.label :context, "Question" %><br />
    <%= builder.text_area :context, :rows => 3 %>
  <% end %>


3 %>
以下是我从控制台测试中得到的信息

irb(main):010:0> @survey = Survey.new
=> #<Survey id: nil, name: nil, created_at: nil, updated_at: nil>
irb(main):011:0> 3.times {@survey.questions.build}
=> 3
irb(main):012:0> @survey.questions
=> [#<Question id: nil, survey_id: nil, context: nil, created_at: nil, updated_a
t: nil>, #<Question id: nil, survey_id: nil, context: nil, created_at: nil, upda
ted_at: nil>, #<Question id: nil, survey_id: nil, context: nil, created_at: nil,
 updated_at: nil>]
irb(main):010:0>@survey=survey.new
=> #
irb(main):011:0>3.times{@survey.questions.build}
=> 3
irb(主要):012:0>@survey.questions
=> [#, #, #]

您为模型创建了一个新对象。为空对象创建3个问题。你的问题必须是空的。它没有保存或定义。

如果我正确理解了您的问题,您就看不到表单中的问题。你的表格中的一个问题需要有一个表格。你在做问题吗?每个问题都在你的表格里

你需要像这样的东西:

<% survey.questions.each do |question| %>
      <%= fields_for question do |builder| %>

哈哈,我太傻了。 这是一个愚蠢的问题。 这与协会无关

我在电脑上打错了字

它应该返回一些插入HTML文档的文本,而不是像ruby代码那样处理

它应该是


但是谢谢您的所有回答:)

这可能是您的问题之外的问题,但是我注意到您的
attr\u accessible
值包含
:问题
。对于嵌套属性,如果我没有弄错的话,应该是
:问题\u属性
。你是对的,伙计。它与质量分配一起使用。我解决了这个问题,但感谢您的通知:)但我想知道是否有任何安全问题?