@posts = Post.all
Post.all将当前在数据库中的所有帖子作为Post记录数组返回,这些记录存储在名为@posts的实例变量中。我只想获得用户的具体数据。那我该怎么做呢?
答案 0 :(得分:0)
@posts = specific_user.posts.all
您需要确保帖子模型属于用户模型并且用户模型has_many帖子
答案 1 :(得分:0)
首先,您需要生成迁移。
rails g migration add_user_id_to_posts user_id:integer
然后,运行rake db:migrate
,以便您的posts
数据库表格中包含user_id
列。
现在,您需要修改user.rb
和post.rb
模型以反映关联
# app/models/post.rb
class Post < ActiveRecord::Base
...
belongs_to :user
...
end
# app/models/user.rb
class User < ActiveRecord::Base
...
has_many :posts
...
end
在此之后,重新启动rails服务器。现在,您将能够访问特定于此类用户的帖子
# Let fetch User with ID 1
user = User.find(1)
# Now, we can fetch posts related to this user like
@posts = user.posts
# Or like this
@posts = Post.where(:user_id => 1).all
我希望这很容易理解。了解Rails ActiveRecord Associations。