使用rails检索关联数据

时间:2016-02-22 21:58:17

标签: ruby-on-rails ruby associations

我在状态Feed的上下文中有以下关联。拥有多个微博的拥有多少点的用户。 Micropost包含带有帖子的字段内容和两个关联字段user_id和spot_id

位指示:

def home
  @feed_items = current_user.feed
end

在用户模型中:

def feed
  Micropost.where("user_id IN (:following_ids) OR user_id = :user_id",
                following_ids: following_ids, user_id: id)
end

Micropost模型:

class Micropost < ActiveRecord::Base
  belongs_to :spot
  belongs_to :user
end  

现货型号:

belongs_to :user
has_many :microposts
accepts_nested_attributes_for :microposts

斑点表

create_table "spots", force: :cascade do |t|
  t.string   "name"
  t.string   "city"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

使用此模型,我可以使用

轻松检索用户名
feed_item.user.name

现在,我想检索现场的名称,但

feed_item.spot

给了我

 #<Spot:0x007f3bc6c74f08>

不是现场的名称

feed_item.spot.name

给了我

undefined method `name' for nil:NilClass

feed_item.spot_id

给了我正确的spot_id,但我不确定如何从中检索现场名称。谁能给我一些建议呢。谢谢!

1 个答案:

答案 0 :(得分:-1)

user_id

中缺少

spot table个外键