class Student < ActiveRecord::Base
attr_accessible :dob, :grade_status, :school_id
belongs_to :school
end
class School < ActiveRecord::Base
attr_accessible :location, :name
has_many :students
end
class HomeController < ApplicationController
def index
@school = School.new
@student = @school.students.build(params[:student])
School.create(params[:school])
end
end
问问题
77 次
3 回答
1
添加accepts_nested_attributes_for :students
School 模型并添加:students_attributes
到 attr_accesible
于 2013-06-15T19:39:54.493 回答
0
看起来您的params
哈希包含“学校”键中的“学生”键。这是准确的吗?它看起来像这样:
{ school: { name: 'Foo', location: 'Bar', students: [...] } }
我会假设是这种情况。您应该使用嵌套属性,添加:
accepts_nested_attributes_for :students
到您的学校模型。还要添加students_attributes
到您attr_accessible
的学校模型中的行。
在您看来,您将需要使用fields_for
帮助程序,以便 Rails 可以students_attributes
在您的参数中构建密钥。它看起来像这样:
form_for @school do |f|
f.text_field :name
f.text_field :location
f.fields_for :students do |builder|
builder.text_field :dob
...
(这都应该在 ERB、Haml 或任何你使用的东西中)
这是嵌套表单上的 Railscast:http ://railscasts.com/episodes/196-nested-model-form-part-1,如果您仍然遇到问题。
于 2013-06-15T19:43:56.547 回答
0
添加:students
到您的attr_accessible
. 并购买有关 Rails 的书籍。
于 2013-06-15T19:35:25.353 回答