Rails 4中的has_many和belongs_to关联

时间:2015-02-17 07:35:57

标签: ruby-on-rails ruby-on-rails-4

大家 我在Rails中有一个相关关系的问题。我有学生模特



class Student < ActiveRecord::Base
    ....
    has_many :histories, dependent: :destroy
end
                                  
                                 
&#13;
&#13;
&#13; 我的历史模型

&#13;
&#13;
class History < ActiveRecord::Base
	belongs_to :student
	
end
&#13;
&#13;
&#13;

我尝试使用此代码来获取属于学生的所有历史记录

&#13;
&#13;
def history
@histories = @student.histories.paginate(:per_page =>25, :page => params[:page])
end
&#13;
&#13;
&#13; 方法历史记录属于Students控制器,通过history_path(student)调用。 但我得到一个错误:没有这样的专栏:histories.student_id。我认为当我通过belongs_to和has_many在Rails中建立关系时,必须自动创建id?

2 个答案:

答案 0 :(得分:0)

不会自动创建它们。只需创建这样的迁移:

rails g migration add_student_id_to_histories student_id:integer

然后运行:

bundle exec rake db:migrate

需要为所有关系做到这一点。 Rails没有自动创建它。您需要手动执行此操作。

答案 1 :(得分:0)

你要尝试跑步:

rails g migration create_histories student:references; rake db:migrate

这将使用student_id创建历史记录表。 或者添加用户:对现有历史记录表的引用

在我打字时,我首先回答了深刻的回答,避免我的回答。