如何在rails中插入数据并从db中获取数据?

时间:2012-08-17 10:48:15

标签: ruby-on-rails ruby-on-rails-3

@posts = Post.all

Post.all将当前在数据库中的所有帖子作为Post记录数组返回,这些记录存储在名为@posts的实例变量中。我只想获得用户的具体数据。那我该怎么做呢?

2 个答案:

答案 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.rbpost.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