0

所以我有一个类类别:

class Category < ActiveRecord::Base

  attr_accessible :category_id, :name
end

和一个类 UserCategory。

class UserCategory < ActiveRecord::Base
  attr_accessible :user_id, :category_id, usercategory_id

  self.table_name = 'contractor_categories'
  self.primary_key = :nid
  belongs_to :user, class_name: "User", foreign_key: "user_id",
             :inverse_of => :categories
end

因此,当我这样做时,User.last.categories.first.name 我想获得第一个关联类别的名称。

如果不做类似的事情,我应该怎么做:Category.find(User.last.categories.first.category_id).name

编辑:我目前正在做:

def name
    Category.find(self.category_id).name
  end

但我很确定有更好的方法来做到这一点。

4

1 回答 1

1

在您的模型中,您可以添加关联

belongs_to :category

然后你的name方法看起来像这样

def name
  category.name
end

或者您可以这样做User.last.categories.first.category.name可以节省您创建名称方法的时间,但我不确定您为什么更喜欢这样做。

于 2013-07-24T13:51:09.760 回答