vit*_*des 1 ruby-on-rails nested-attributes ruby-on-rails-3
我有3个模型:用户,答案和问题。
user.rb
has_many :questions
has_many :answers
Run Code Online (Sandbox Code Playgroud)
Question.rb
has_many :answers
belongs_to :user
accept_nested_attributes_for :answers
Run Code Online (Sandbox Code Playgroud)
answer.rb
belongs_to :question
belongs_to :user
Run Code Online (Sandbox Code Playgroud)
在questions / show.html.erb中
form_for @question do |f|
f.fields_for :answers, @question.answers.build do |builder|
builder.text_area, :body
end
f.submit
end
Run Code Online (Sandbox Code Playgroud)
Submit调用问题#update动作,由于嵌套了资源,新答案将被保存在数据库中。我想知道:user_id提交问题后,如何将答案列保存在数据库中?提交表格后,我能以某种方式通过current_user.id答案user_id栏吗?
小智 5
您必须在控制器的create动作中传递用户参数(也应在控制器中构建嵌套属性):
def new
@question = Question.new
@question.answers.build
end
def create
@question = current_user.questions.new(params[:questions])
//The line below is what will save the current user to the answers table
@question.answers.first.user = current_user
....
end
Run Code Online (Sandbox Code Playgroud)
因此,您的视图的形式应类似于:
form_for @question do |f|
f.fields_for :answers do |builder|
builder.text_area, :body
end
f.submit
Run Code Online (Sandbox Code Playgroud)
结束
| 归档时间: |
|
| 查看次数: |
1900 次 |
| 最近记录: |