Ruby on rails RubyonRails:ActiveRecord关联

Ruby on rails RubyonRails:ActiveRecord关联,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我是RubyonRails新手 我读了一些教程,知道如何建立基本的关系。但我不能申请我的案子 我有两个模型看起来像 class User < ActiveRecord::Base attr_accessible :email, :created_user, :updated_user has_many :reports end 但我想写更多的东西 report.updated_user // instead of User.find(report[:updated_use

我是RubyonRails新手

我读了一些教程,知道如何建立基本的关系。但我不能申请我的案子

我有两个模型看起来像

class User < ActiveRecord::Base
    attr_accessible :email, :created_user, :updated_user
    has_many :reports
end
但我想写更多的东西

report.updated_user // instead of User.find(report[:updated_user]) 
user.created_user // instead of User.find(user[:created_user])
user.updated_user // instead of User.find(user[:updated_user])

我能做什么?

将您的报告模型更改为:

class Report < ActiveRecord::Base
    attr_accessible :content, :user_id, :title, :updated_user 
    belongs_to :user, :class_name => "User", :foreign_key => 'user_id'
    belongs_to :updated_user, :class_name => "User", :foreign_key => 'updated_user'
end
类报告“user”,:foreign\u key=>“user\u id”
属于:更新的用户,:类名称=>“用户”,:外键=>“更新的用户”
结束
像这样试试

@report=report.find(id)
@report.user.updated_user

请确保在迁移文件中添加这些外键,然后刷新数据库谢谢。还有一件事,这种方式是否比我使用User.find(report[:updated_User])运行得更快?它可能没有太大的区别,但这种方式确实更干净!
class Report < ActiveRecord::Base
    attr_accessible :content, :user_id, :title, :updated_user 
    belongs_to :user, :class_name => "User", :foreign_key => 'user_id'
    belongs_to :updated_user, :class_name => "User", :foreign_key => 'updated_user'
end
@report=report.find(id)
@report.user.updated_user