Как установить элементы, выбранные в поле автозаполнения - PullRequest
1 голос
/ 30 марта 2011

У меня есть пользователи, выбирающие жанры из поля автозаполнения.Это поле находится в режиме редактирования профиля, поэтому в модели профиля у меня есть 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 %>

1 Ответ

1 голос
/ 30 марта 2011

Проверить эту страницу http://loopj.com/jquery-tokeninput/demo.html

На этой странице, нажав на кнопку отправки идентификаторов оповещений элемента, в соответствии с моим пониманием.

Сценарий ниже в head делает это

<script type="text/javascript">  
  $(document).ready(function() {  
    $("input[type=button]").click(function () {  
     alert("Would submit: " + $(this).siblings("input[type=text]").val());   
    });
   });
</script>

Этот коврик поможет вам .. В основном это скрытое текстовое поле, в котором хранятся идентификаторы выбранных элементов

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