Я только что запустил свое приложение Rails, и у меня есть следующая проблема: я хочу использовать пользовательский интерфейс jQuery и автозаполнение, и поэтому использовал драгоценный камень 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
Как объяснено в документе драгоценного камня, я сделал конфигурацию автозаполнения в своем 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. Я имею в виду, что я хочу сохранить ссылочный идентификатор клиента в моей модели корзины, а не само имя. Я увидел возможность использовать параметр :id_element
для ссылки на поле ввода идентификатора для сохранения идентификатора в форме. Я понял, что, похоже, есть проблема с комбинацией formtastic, и нашел потенциальный решение.
Я мог бы сделать это с помощью <%= f.input :customer_id, :as => :hidden %>
, но я действительно не знаю, что написать в строке: <%= f.input :customer, :as => :autocom...
. Является ли :customer правильным решением для этого? Этот подход дал бы мне следующее: "cart"=>{"customer"=>"26","customer_id"=>"0"}
У кого-нибудь есть идея, возможно, я совершенно неправильно понимаю всю эту вещь: id_element...