Mi spiego meglio:
class Shop < ActiveRecord::Base
has_many :documents, :dependent => :restrict
has_many :roles, :dependent => :restrict
accepts_nested_attributes_for :documents
accepts_nested_attributes_for :roles
il form e’ per la gestione di shop e’:
= 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
= render :partial => ‘role_fields_form’, :locals => { :f => shop_f }
unless @shop.new_record? or !@role
= field_set_tag t(‘shop’) do
.inputs
= shop_f.input :name
…
Siccome vorrei gestire separatamente la modifica dei soli campi
relativi a Shop, nell’index oltre al classico link “modifica” ne ho
aggiunti altri due “documenti” e “ruoli”, con questi ultimi due
vengono passati dei paramentri aggiuntivi in modo da riconoscere se si
proviene da “modifica” oppure “documento” oppure “ruolo”.
Lo 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]
@role = @shop.roles.build if params[:ruolo]
edit!
end
In questo modo viene controllata l’esistenza dei parametri citati e se
esistono quando modifico i campi di Shop posso inserire un nuovo
Document e un nuovo Role.
Il render dei campi relativi a Documen e Role viene fatto al
verificarsi di determinate condizioni come si puo’ vedere dal codice
del form.
Il mio problema e’ che cosi’ come ho fatto se al submit Document o
Role non sono validi il render non viene effettuato cosi’ ho i
messaggi di errore ma non vedo i campi di Documen o Role, questo
perche’, nel caso di Document, shop non e’ new_record e non esiste
piu’ @document quando viene effettuata la validazione.
So che il problema e’ stupido ma sono un po in palla, qualche
suggerimento?