Html 无法为rails中的嵌套模型表单在新对象之间创建关联
我一直在观察,并试图用自己的双手写下这个例子。 但是我在创建表单的步骤上遇到了麻烦 它需要在调查和问题之间建立关联。 但是在我的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
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属性。你是对的,伙计。它与质量分配一起使用。我解决了这个问题,但感谢您的通知:)但我想知道是否有任何安全问题?