Я только что запустил свое приложение на Rails, и у меня возникла следующая проблема - я хочу использовать пользовательский интерфейс jQuery и автозаполнение, и поэтому использовал gem rails3-jquery-autocomplete. Я также использую formtastic для моих форм рельсов.
У меня есть две модели:
Заказчик:
class Customer < ActiveRecord::Base
has_many :carts
end
create_table :customer do |t|
t.column :lastname, :string
t.column :forename, :string
end
Корзина:
class Cart < ActiveRecord::Base
belongs_to :customer
end
create_table :cart do |t|
t.column :costumer_id, :integer
end
Как объяснено в документе gem, я настроил автозаполнение в моем CartController: autocomplete :customer, :lastname, :full => true
На мой взгляд, с кодом формы это выглядит так:
<%= semantic_form_for @cart do |f| %>
<%= f.inputs do %>
<%= f.input :customer,
:as => :autocomplete,
:url => autocomplete_customer_lastname_carts_path,
:id_element => '#cart_customer_id' %>
Главный вопрос, который у меня есть, это как работать с идентификаторами. Я имею в виду, я хочу сохранить ссылочный идентификатор клиента в моей модели корзины, а не само имя. Я признал возможность использовать опцию :id_element
для ссылки на поле ввода идентификатора для хранения идентификатора в форме. Я выяснил, что, похоже, есть проблема с комбинацией formtastic, и нашел потенциальное решение .
Я мог бы сделать это с <%= f.input :customer_id, :as => :hidden %>
, но я действительно не знаю, что написать в строке: <%= f.input :customer, :as => :autocom...
. Является ли клиент правильным решением для этого? Этот подход дал бы мне следующее: "cart"=>{"customer"=>"26","customer_id"=>"0"}
У кого-нибудь есть идея, возможно, я совершенно не понимаю всего этого: id_element вещь ...