Rails 4访问has_one关联的表属性

时间:2015-08-19 11:55:58

标签: mysql ruby-on-rails ruby-on-rails-4 has-one

我有两个模型用户和帐户

class User < ActiveRecord::Base
  has_one :account
end

 class Account < ActiveRecord::Base
      belongs_to :User
    end

在我的用户控制器中我正在通过

检索用户
@user = User.list('', false,'company', 'asc')

其中“list”是我的模型中描述的用于检索记录的方法

用户表中的

我有两列“id”和“company_name” 在帐户表格中,我将列设为“user_id”和“country”

现在我希望数组@user检索公司名称及其国家/地区,可以通过帐户表中的user_id找到

请告诉我该怎么办? 谢谢你提前

2 个答案:

答案 0 :(得分:4)

在您的控制器中

@users.each do |user|
  user.company_name
  user.account.country
end

在您的视图中

[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

答案 1 :(得分:3)

怎么样:

# app/models/user.rb
class User < ActiveRecord::Base
  has_one :account

  scope :with_account_info, -> { includes(:account) }
  default_scope{with_account_info}
end

如果您愿意,最后两行可以合并为一行,即:

default_scope{ includes(:account) } 

HTH