Нужна помощь в создании модели и миграции для модели тега для модели Post (Rails) - PullRequest
0 голосов
/ 01 марта 2012

У меня есть модель Post , и я хотел бы создать модель Tag , чтобы сообщения могли иметь теги (более одного за раз). Я хочу иметь возможность искать теги постов и искать посты, помеченные как X.

Это то, что я понял до сих пор, чтобы заставить эту работу (поправьте меня, если я ошибаюсь):

  1. Для модели Tag требуется только атрибут :name, а для модели Post требуется атрибут :tag_list)

  2. Post и Tag должны иметь либо has_and_belongs_to_many, либо many-to-many ассоциации между ними (не знаю, какая именно).

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

Любые предложения или идеи (с примерами, если это возможно).

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Несколько рекомендаций:

  1. Я думаю, вам также понадобится таблица соединений, что-то вроде posts_tags или posts_to_tags, что имеет tag_id и post_id.
  2. Есть довольно хороший пример различия между многими ко многим и HABTM в документах AR. В этом случае я бы использовал HABTM, потому что ваша таблица соединений не имеет каких-либо значимых характеристик (в отличие от примера, где «Назначение» является моделью первого класса).
  3. Переход от разделенной запятыми строки к отдельным тегам, вероятно, должен выполняться с помощью фильтра before_save или чего-то еще - не уверен, что здесь есть встроенное поведение.

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

0 голосов
/ 01 марта 2012

Вы можете использовать has_many: через ассоциацию. Это одно из лучших решений вашей ситуации.

Существует подробное руководство по Rails Guide: http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...