I have:
class Shop < ActiveRecord::Base
has_many :documents, :dependent => :restrict
has_many :roles, :dependent => :restrict
accepts_nested_attributes_for :documents
accepts_nested_attributes_for :roles
the shop _form is:
= simple_form_for(@shop) do |shop_f|
= render ‘shared/error_messages’, :object => @shop
= render :partial => ‘document_fields_form’, :locals => { :f =>
shop_f } if @shop.new_record? or @document
= field_set_tag t(‘shop’) do
.inputs
= shop_f.input :name
…
I want to create a new document only if I’m inserting a new shop
record or if @document is defined.
Shop_controller e’:
def new
@shop = Shop.new
@document = @shop.documents.build
new!
end
In questo modo quando creo un nuovo Shop creo anche un nuovo Document
relativo, poi…
def edit
@shop = Shop.find(params[:id])
@document = @shop.documents.build if params[:dlg114]
edit!
end
But this way if the document is not valid I can’t see document fields
because it isn’t a new record and @document is not defined.
Can you suggest a better way to do this?