У меня есть несколько пользователей, которые могут иметь много постов, и каждый из этих постов может иметь много тегов. Я реализовал это, используя has_and_belongs_to_many отношение между постами и тегами.
При создании нового сообщения пользователь может помечать его тегами, используя список значений, разделенных запятыми (так же, как при размещении нового вопроса на SO). Если какой-либо из тегов еще не существует, он должен быть создан автоматически. Это _fields.html.erb частичный вариант для сообщения:
<%= form_for @post do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<h1 class="post"><%= t(:new_post_message) %></h1>
<div class="field">
<%= f.label t(:title) %>
<br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label t(:tag).pluralize %>
<br />
<%= f.text_field :tags %>
</div>
<div class="field">
<%= f.label t(:text) %>
<br />
<%= f.text_area :content %>
</div>
<div class="actions">
<%= f.submit t(:post_verb) %>
</div>
<% end %>
Использование f.text_field :tags сейчас приводит к элементу ввода с [] для текста.
Я пока не использую теги в posts_controller.rb, потому что не уверен, как я должен получить и разделить строковое значение из параметров:
def create
@post = current_user.posts.build(params[:post])
if @post.save
redirect_to root_path
else
@stream = []
render 'pages/home'
end
end
Кто-нибудь уже решал эту проблему? Большое спасибо.