我是铁杆新手,而且我很想学习协会
我正在使用Rails版本3.
我有一个用户模型和发布模型。我需要如下: -
模型
class User < ActiveRecord::Base
has_many :post
end
class Post < ActiveRecord::Base
belongs_to :user
validates_associated :user
end
模式的
ActiveRecord::Schema.define(:version => 20101016171256) do
create_table "posts", :force => true do |t|
t.integer "sell_or_buy"
t.string "title"
t.text "body"
t.integer "user_id" <<<<<<< I thought this will help to associate to user model.
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", :force => true do |t|
t.string "name"
t.string "email"
t.string "password"
t.integer "rank"
t.datetime "created_at"
t.datetime "updated_at"
end
end
我想保留一个user_id
字段,belongs_to
协会将完成我的工作,但是
当我试图显示属于用户的所有帖子时,如下所示:
<%= @user.posts %>
在我的show.html.erb文件中。但我只得到以下显示: -
Name: saran
Email: saran.saran007@gmail.com
Password: abcd
Rank:
Edit | Back
Posts
#<Post:0xb69f47f8>#<Post:0xb69f3024>
我希望以可读格式显示关联的帖子“title”和“body”。
此外,我还可以使用user_id创建一个帖子,其中不存在用户! validates_associated :user
也无效,请帮帮我。
答案 0 :(得分:3)
它的
class User
has_many :posts
end
不
has_many :post
修改并更新结果。
答案 1 :(得分:1)
您在视图中按预期收到帖子......所以我不确定我是否理解您的问题。至于另一部分,validates_associated
只是确保附加对象本身有效,而不是确实存在。为此你需要validates_presence_of
。 See the docs
答案 2 :(得分:0)
为了我的目的,我写了以下部分内容并且效果很好:) 感谢您的所有投入。
<% for post in @user.posts do %>
<h3> <%= post.title %> </h3>
<%= post.body %>
<% end %>