У меня есть проект Rails 3.0, использующий монго с MongoMapper. У меня есть модель с базовой информацией, описывающей зоомагазин, в котором есть: Питомец - это отдельная модель.
У меня есть форма, которая позволяет мне создавать новые зоомагазины, но как мне добавить поле для создания питомца одновременно с созданием нового магазина? Прямо сейчас у меня есть взломанное решение, которое выполняет то, что я хочу, но я, вероятно, есть Rails Way, чтобы сделать это, а? Как я могу сделать это правильно, чтобы я мог использовать проверки в полях формы и тому подобное?
Мое текущее решение состоит в том, чтобы вручную взломать поле формы для домашнего животного (в шаблон формы добавлен тег с именем = "petstore [pet]"). Эта форма обрабатывается методом create petstore_controller, и я добавил код для создания домашнее животное из поля формы
Модель:
class Petstore
include MongoMapper::Document
many :pets, :dependent => :destroy
key :name, String
key :address, String
end
class Pet
include MongoMapper::Document
belongs_to :petstore
key :petstore_id, ObjectID, :required=>true
key :type, String, :required=>true
key :name, String
end
_form.html.erb
<%=form_for @petstore do |f| %>
<li>
<%= f.label :name %>
<%= f.text_field :name, :placeholder =>"The name" %>
</li>
<li>
<%= f.label :address %>
<%= f.text_field :address, :placeholder =>'The address' %>
</li>
<li>
<label for="petstore_pet">Type of pet</label>
<input type="text" id="petstore_pet" name="petstore[pet]">
<li>
<%= f.submit "Submit" %>
</li>
<% end %>
petstores_controller.rb
def create
pet = @petstore.pets.build :type => params[:petstore][:pet]
pet.save if pet
respond_to do |format|
...
end
end
Похожие темы / вопросы:
(Я не совсем уверен, как отобразить это решение на мой вопрос.)
(Принятый ответ ссылается на ветку группы Google, которая находится у меня над головой ...)