我在状态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,但我不确定如何从中检索现场名称。谁能给我一些建议呢。谢谢!
答案 0 :(得分:-1)
user_id
中缺少 spot table
个外键