Реализация категории разрешений в Rails - PullRequest
0 голосов
/ 28 декабря 2011

Я новичок в Rails. Не могли бы вы мне помочь? Как лучше всего это осуществить?

Допустим, у меня есть контроллер Users, где я спрашиваю его, на какие категории хочет подписаться конкретный пользователь?

Предположим, есть 3 категории, автомобили, цвета и формы. Допустим, пользователь подписывается на Cars & Shapes.

Автомобили имеют метки BMW, Ford, Ferrari, Mercedes и т. Д. Цвета имеют метки красный, синий, зеленый, белый и т. Д. Фигуры имеют теги Треугольник, Прямоугольник, Квадрат и т. Д.

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

Как убедиться, что если он входит в категорию автомобилей, ему разрешено использовать только теги, связанные с автомобилями!

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

Не могли бы вы помочь мне понять, как это можно реализовать в Rails?

1 Ответ

0 голосов
/ 28 декабря 2011

Simple! Просто сделайте проверку при отправке. Примерно так (псевдокод)

def new_post
  category = params[:category]
  tags = params[:tags]

  allowed_tags = Category.get_tags_for(category)


  # a piece of Ruby magic here: array subtraction!
  tags_he_cant_use = tags - allowed_tags

  if tags_he_cant_use.length > 0
    # render the same page again, with error "You used tags from another category"
  else
    # proceed creating the post
  end
end      
...