Piotr MÄ…sior wrote:
> Model is passed by @model variable with nested attributes so it is
> like:
>
> @model = model.new
> @model.build_another
>
> at form it is looped through like
>
> - form_for @account, :url => { :action => @given_action , :controller
> => 'admin'} do |f|
> - f.fields_for :company do |o|
> %label{:for => "company|name"}=
> Company.human_attribute_name(:name)
> = o.text_field :name, :named => "company|name"
> - o.fields_for :city do |x|
> %label{:for => "company|city|name"}=
> City.human_attribute_name(:name)
> = x.text_field :name, :named => "company|city|name"
>
>
> jquery is responsible for communication and requesting my particular
> methods so it calls appropriate model basing on something like
> params[:model], doajaxing method knows how to deal with nested
> attributes
>
> so it request from controller some action like
> doajaxing_for_createmodel and it looks like:
>
> def doajaxing_for_createmodel
> doajaxing("account")
> end
>
> and doajaxing itself looks like
>
> def doajaxing(object_name)
> if request.xhr?
> sended = params[object_name.to_sym]
> object_name = object_name.camelize
> @process = object_name.constantize
> @process = @process.new(sended)
Because you have "@process.new", the "on_create" validations will be
triggered.
If you are updating an existing record, use
@process = @process.find(...model-id...)
where model-id is usually taken from "params" (params[:id]).
Then assign the new values to @process.
Then the "on_create" validations will not be triggered.
> @process.valid?
> ##some other processing
> if @process.errors[current_given]
> #process message and field
> #some @response is given in json
> render :json => @response
> end
> end
>
>
>
> that it work... I wonder if I can use instead of @process.valid?
> something else
Hope that helps. I think your "doajaxing" method needs to know about the
two cases, create/update.
Stephan
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.