yep! That works perfect.
Thanks Serigo.

On Thu, Apr 16, 2015 at 12:56 AM, Sergio Cambra <[email protected]>
wrote:

> If I read correctly, you only need to change default value depending on
> some
> conditions. You can do that in do_new in controller, instead of adding a
> form
> helper:
>
> def do_new
>   super
>   if params[:widgetmodel_id] #Form invoked from WidgetModel list. (create
> new
> from nested view)
>     widgetmodel = Widjetmodel.find(params[:widgetmodel_id])
>     @record.rtype = widgetmodel.rtype
>     @record.widgettype = widgetmodel.widgettype
>   end
> end
>
> El Miércoles, 15 de abril de 2015 15:33:07 coalex escribió:
> > Sometimes I need a set a few form columns to a certain value based on
> where
> > the form is invoked in the application (if nested, if with associations,
> > etc.), otherwise the form colums should function as normal(if no
> conditions
> > exist) as send_form_on_update_column. I'm having trouble doing both.
> > I need advice on writing the helper cleanly.
> >
> > Example:
> > Model:  widget.rb
> > belongs_to :rtype
> > belongs_to :widgettype
> > belongs_to :widgetmodel
> >
> > Controller: widget_controller.rb
> >
> > active_scaffold :"widget" do |conf|
> > …
> > conf.columns[:rtype].label = "Entity"
> > conf.columns[:rtype].form_ui = :select #example: “Software”
> > conf.columns[:rtype].update_columns = :widgettype
> > conf.columns[:rtype].send_form_on_update_column = true
> > …
> > conf.columns[:widgettype].label = "Type"
> > conf.columns[widgettype].form_ui = :select #example: “Audio Editing
> Suites”
> > conf.columns[widgettype].update_columns = [:widgetmodel]
> > conf.columns[widgettype].send_form_on_update_column = true
> > …
> > conf.columns[:widgetmodel].label = "Model"
> > conf.columns[:widgetmodel].form_ui = :select #example: “Audacity 2.1.0”
> >
> >
> > \\widget_helper.rb
> > …
> >
> > def rtype_form_column(record, options)
> >
> > columns = [ 'name', 'id']  # Rtype's name for the selection box.
> > list = Rtype.find :all,
> >
> >                      :select => columns.join(', '),
> >                      :order => 'name'
> >
> >  @rtypes = list.map{|r|[r.name, r.id]}
> >
> > if params[:widgetmodel_id] #Form invoked from WidgetModel list. (create
> new
> > from nested view)
> >
> >     widgetmodel = Widjetmodel.find(params[:widgetmodel_id])
> >
> >      select(:record, :rtype, @rtypes, :selected =>
> > assetmodel.rtype_id,:include_blank => true)
> >
> > elsif @record.rtype #Form invoked where record.rtype is already
> > assigned.(an update)
> >
> >      select(:record, :rtype, @rtypes, :selected =>
> > @record.rtype_id,:include_blank => true)
> >
> > else #If no conditions exist.(create new)
> >
> > #Behave normally...Forget this form_helper exists.
> > *#What goes here?*
> >
> > end
> > end
> >
> > --Likewise
> >
> > def widgettype_form_column(record, options)
> > columns = [ 'name', 'id']                        # add the rest you need
> > here
> >
> >    list = Widgettype.find :all,
> >
> >                      :select => columns.join(', '),
> >                      :order => 'name'   # maybe some sql to limit it
> here -
> >
> > not sure
> >
> >  @widgettypes = list.map{|r|[r.name, r.id]}
> >
> > if params[:widgetmodel_id] #Form invoked from WidgetModel list. (nested
> > view)
> > widgetmodel = widgetmodel.find(params[:widgetmodel_id])
> >
> > select(:record, :widgettype, @widgettypes, :selected =>
> > widgetmodel.widgettype_id,:include_blank => true)
> >
> > elsif @record.widgettype #Form invoked where record.widgettype already
> > exist (an update)
> >
> > select(:record, :widgettype, @widgettypes, :selected =>
> > @record.widgettype_id,:include_blank => true)
> >
> >   else   #Forget this form_helper exists.
> > *    #What goes here?*
> > end
> >
> > end
> >
> > Any thoughts would be greatly appreciated!
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails Gem" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/activescaffold.
For more options, visit https://groups.google.com/d/optout.

Reply via email to