Нужна помощь в устранении неисправностей ассоциации в Rails! - PullRequest
0 голосов
/ 16 октября 2010

Я новичок в рельсах, и я стремлюсь изучать ассоциации.
Я использую 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 также не работает, пожалуйста, помогите мне.

Ответы [ 3 ]

3 голосов
/ 16 октября 2010

Его

class User
  has_many :posts
end

Не

has_many :post

Редактировать и обновлять результаты.

1 голос
/ 16 октября 2010

Вы получаете сообщения, как и ожидалось, на ваш взгляд ... Так что я не уверен, что понимаю эту часть вашего вопроса.Что касается другой части, validates_associated просто гарантирует, что присоединенный объект является действительным сам по себе, а не если он вообще существует.Для этого вы хотите validates_presence_of. См. Документы .

0 голосов
/ 16 октября 2010

Я написал следующую часть для моей цели, и она хорошо работает:).
Спасибо за ваш вклад.

<% for post in @user.posts do %>    
   <h3> <%= post.title %> </h3>   
   <%= post.body %>   
<% end %>   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...