У меня есть две моделиRoR - Новое действие обновление
Client.rb has_many :addresses accepts_nested_atributes_for :addresses Address.rb has_many :addresses
Я создал новое действие update_establishments
на ClientsController
, чтобы добавить новые учреждения к клиенту.
ClientsController.rb #the corresponding view of this action will render the locations_form def add_establishments @client = Client.find(params[:id]) @client.addresses.build end def update_establishments create_zip respond_to do |format| if @client.update(client_params) set_zip format.html { redirect_to @client, notice:'Establishment added.'} format.json {head :no_content} else format.html { render action: 'edit'} format.json { render json: @client.error, status: :unprocessable_entity } end end end locations_form %= form_for @client, :url=>{:action=>'update_establishments'}, html:{ :method =>"patch"} do |form| %>
У меня есть два вопроса:
1 - Когда форма оказывается, форма представления двух отдельных полей для адресов, один, содержащий значения существующего адреса, а другой, чтобы добавить новый , Как я могу представить не существующие адреса?
2 - Это дает явную ошибку в действии update_establishments
, потому что @client
- ничто. Есть ли способ отправить клиент из формы в действие или мне нужно добавить скрытые поля со значениями?
Я больше всего использую ваш ответ, который заставлял меня думать о других способах создания моделей.Однако у меня есть новое сомнение в том, что я хотел бы, чтобы вы взглянули, если вы можете http://stackoverflow.com/questions/25595309/ror-create-record-on-many-to-many-join-table. Спасибо за ваше время – NunoRibeiro