2012-05-01 3 views
2

У меня есть отношения HABTM между Продуктами и Категориими. Эти категории принадлежат пользователю.Rails 3: подтвердить, что запись принадлежит пользователю

В моей форме продукта я показываю флажки для текущего пользователя. Но я хочу также проверить это на модели, поэтому пользователи не могут подделывать переменные POST и присваивать их недопустимым категориям.

Как я могу сделать такую ​​проверку?

Пример: с учетом category_id 5, я должен проверить, принадлежит ли эта категория current_user.id (предоставляется при разработке).

Спасибо.

ответ

1

Вы можете добавить attr_accessor: creator_id в свою модель Post. (creator_id нет в базе данных)

И отправьте current_user.id с формы на номер Postcreator_id.

Затем используйте обратные вызовы моделей. Например, after_validation:

after_validation do 
    if User.find(creator_id).categories.pluck(:id).include?(category_id) 
    true 
    else 
    errors.add :category, "is invalid for user" 
    end 
end 
Смежные вопросы