2013-07-19 4 views
2

У меня есть приложение рельсы с Users: Пользователи has_many :postsRails: 'has_many: липучки' "Rails Way"

У меня есть sticky логическое значение в моей Posts таблице.

Мне нужно stickies, чтобы быть конкретным пользователем (потому что у меня будут сообщения других пользователей, показываемые на других страницах) &, поэтому у меня есть «has_many: stickies» в классе «Сообщения».

Мой вопрос в том, должен ли я удалить столбец sticky & добавить таблицу «Stickies» или есть способ сделать листы конкретными пользователем с булевым? Если да, то как & было бы лучше?

Заранее спасибо.


def self.visible_to(user) 
    where('posts.user_id = :user_id or favorites.user_id = :user_id', { :user_id => user.id }).includes(:favorites).order('sticky, favorites.created_at, posts.created_at) 
end 

Таким образом, имея 'HAS_MANY: липучки' лучше, чем при использовании булева в этом случае?

ответ

3

Я бы в post.rb:

scope :stickies, where(sticky: true) 

теперь вы можете позвонить:

user.posts.stickies 
+0

не может видеть ваши изменения пока нет, но то, что вы имеете в виду 'сделать липкие пользователя specific'? – rmagnum2002

+0

Повторите попытку. То, что я подразумеваю под «конкретным пользователем», заключается в том, что, когда пользователь является фаворитом пользователя b, этот пост будет отображаться на странице пользователя. Теперь, если сообщение пользователя b является липким, значит, это будет отображаться на странице пользователя как липкая – goo

+0

, как вы, как пользователь, добавить сообщение в избранное? какие отношения вы используете для этого? – rmagnum2002