2013-03-20 3 views
0

Я создал пользователя, использующего аутентификацию устройства. Я также создал статью, контроллер и модель, где у модели есть поля, такие как title, body и article_id. Теперь я хочу реализовать комментарии (с условием, что только зарегистрированный пользователь может прокомментировать статью). Я создал is_admin как специальный пользователь, который имеет силу создавать новые статьи через приложение.Ассоциации в ruby ​​on rails

В таблице пользователя есть все поля, которые по умолчанию генерируются устройством. Таблица статей содержит поля, такие как article_id, title и body. Связь между таблицей пользователей и статей по-прежнему отсутствует. В таблице комментариев будет (по моему мнению) comment_id и comment_body.

Ожидаемые ассоциации:

class Comment < ActiveRecord::Base 
    belongs_to :article 
    belongs_to :user 

Я хочу, чтобы убедиться, что только зарегистрированные пользователи могут комментировать статьи, и что is_admin пользователь может создавать новые статьи.

Как создать связь между таблицами пользователей, статей и комментариев? Нужно ли создавать ассоциацию для таблицы пользователей и комментариев?

+4

Ваш вопрос действительно очень простой », как Rails wo гк?» вопрос. Я настоятельно рекомендую работать с учебником по рельсам или с документацией, например http://guides.rubyonrails.org/association_basics.html, перед тем, как задавать вопросы в StackOverflow. – dpassage

ответ

0

Рекомендуется использовать руководство по рельсам и небольшой блог для понимания ассоциации как @dpassage, предложенный в комментарии. Кажется, у вас уже есть работа, поэтому позвольте мне консолидироваться.

Как вы описали, вы будете иметь три модели:

Во-первых: Пользователь

class User 
    has_many :articles # not dependent => :destroy, may you not want to destroy article on deletion of user 
    has_many :comments, :dependent => :destroy 
end 

Второе: Статья

class Article 
    has_many :comments, :dependent => :destroy 
    belongs_to :user 
end 

Третье: Комментарий

class Comment 
    belongs_to :user 
    belongs_to :article 
end 
Смежные вопросы