Создание тегов на сообщениях RAILS - PullRequest
1 голос
/ 16 января 2011

Я создаю что-то похожее на это поле для тегов автозаполнения для сообщений на stackoverflow.com

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

Для постов он принадлежит_to_and_has_many тегам Для тегов он принадлежит_to_and_has_many постам

Однако для меня проблема сделать это на той же странице, потому что @post будет равен нулю.

Как я могу это реализовать?

(Если кто-то может дать мне код для стека и потока страниц, задайте вопрос, который будет УДИВИТЕЛЬНЫМ)

Ответы [ 4 ]

1 голос
/ 26 января 2011

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

Первый вопрос: как бы вы реализовали функцию автозаполнения, чтобы пользователи могли легко выбирать из предварительно заполненного списка тегов.Чтобы ответить на этот вопрос, вы можете обратиться к ответу spncrgr, приведенному выше.

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

tags = params[:tags].split(' ')

Затем вы можете связать эти теги с моделью в действии Post # create.

0 голосов
/ 22 января 2011

Похоже, вы хотите автоматически генерировать теги.

Вы можете создать

Почта класса
before_save: create_tags

частный
def create_tags
# получить ваши теги как-то
self.tags << Tag.new (: text => "...")
конец
конец

метод в models / post.rb и соберите их там.

0 голосов
/ 25 января 2011

Если вы хотите искать среди существующих тегов свое авто-предложение, вам нужно, чтобы оно совпадало с Tag.all, так как оно не будет равно нулю, так же, как вы собираете группу объектов в выпадающем списке. Не уверен насчет кода для автозаполнения, но теги должны быть в таблице тегов.

0 голосов
/ 22 января 2011

Это может вам совсем не помочь (или вы, возможно, уже видели это), но вот ссылка на эпизод Railscasts по автозаполнению:

http://railscasts.com/episodes/102-auto-complete-association

Я знаю, это помогло мне при попытке сделать что-то подобное.

НТН

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