如何将两个字段与Ruby on Rails联系起来?

irl*_*irl 1 ruby ruby-on-rails foreign-key-relationship

刚开始使用Ruby on Rails来看看它是什么样的.

我有一个带有id的用户模型和一个带有adderId的帖子模型.post模型的adderId应该是创建它的用户的用户id.

我如何将这些与Ruby on Rails联系起来?

Gre*_*ell 5

外键的Rails约定会为Post模型提供user_id列而不是adderId.您可以破坏约定,但这需要稍多的配置,如下所示:

class User < ActiveRecord::Base
  has_many :posts, :foreign_key => :adderId
end

class Post < ActiveRecord::Base
  belongs_to :adder, :class_name => "User", :foreign_key => :adderId
end
Run Code Online (Sandbox Code Playgroud)

如果你给了一个user_id,你可以这样做:

class User < ActiveRecord::Base
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

我建议你看看有关活动记录关联Rails指南,它涵盖了上述所有内容以及更多内容.