У меня есть пользователи, выбирающие жанры из поля автозаполнения.Это поле находится в режиме редактирования профиля, поэтому в модели профиля у меня есть accepts_nested_attributes_for :genres
.Кроме того, жанр и профиль имеют связь has_and_belongs_to_many
друг с другом.Мой вопрос: как вы берете жанры, которые выбирает пользователь, и задаете их для профиля этого пользователя?Какой код контроллера мне нужен?Будет ли код идти в контроллере профилей или жанров?
Я использую это для автозаполнения: http://loopj.com/jquery-tokeninput/ Я уже заполнил таблицу жанров и подключил скрипт к текстовому полю.Прямо сейчас, когда пользователь печатает, автозаполнение успешно отображает предложения.Теперь я хочу обновить базу с выбранными жанрами.Эта база данных представляет собой таблицу соединений между жанрами и профилями.Как и где мне это сделать?
Подводя итог, я хочу сохранить связь между идентификатором профиля и идентификаторами жанров, выбранных в объединяемой таблице, когда я нажимаю кнопку в представлении редактирования профиля.Прямо сейчас я получаю эту ошибку:
ActiveRecord::UnknownAttributeError in ProfilesController#update
unknown attribute: genre
Rails.root: /rubyprograms/dreamstill
app/controllers/profiles_controller.rb:18:in `update'
app/controllers/profiles_controller.rb:17:in `update'
Вот мой вид редактирования профиля:
<%= form_for(:profile, @profile, :url => {:controller => "profiles", :action => "update"}, :html => { :multipart => true, :method => :put }) do |f| %>
...
<%= f.fields_for :genre do |g| %>
<div class="field">
<%= g.label :name, "Genres" %><br />
<%= g.text_field :name, :id => 'genre_field' %>
</div>
<% end %>
...
<div class="action">
<%= f.submit :profile, :value => "Update Profile" %>
</div>
<% end %>