On Miércoles, 3 de Noviembre de 2010 11:30:54 Dan Candea escribió:
> On 11/03/2010 10:20 AM, Sergio Cambra .:: entreCables S.L. ::. wrote:
> > On Martes, 2 de Noviembre de 2010 14:54:45 Dan escribió:
> >> hello
> >> 
> >> I would appreciate some help with the issue below.
> >> 
> >> I have in a model a hash with array values, like this
> >> 
> >> class User<  ActiveRecord::Base
> >> 
> >>    LIST = { "Dan" =>  ["333","abc"] ,
> >>    
> >>             "John" =>  ["777","qwery"] ,
> >>          
> >>          }
> >> 
> >> end
> >> 
> >> class UserController<  ApplicationController
> >> 
> >>    active_scaffold :user do |config|
> >>    
> >>      config.label = "Test"
> >>      config.columns = [:name, :value]
> >>      config.columns[:name].form_ui = :select
> >>      config.columns[:name].options = {:options =>  User::LIST.map}
> >>      config.columns[:name].update_column = :value
> >>      config.columns[:value].form_ui = :select
> >>    
> >>    end
> >> 
> >> end
> >> 
> >> I what that on selection of a name from the User::LIST on :value field
> >> to be presented with the options from the array
> >> how can I do that?
> > 
> > You can't use :select form_ui in this case, you will have to make a form
> > override for value column
> 
> so I added
> 
> module UserHelper
>    def value_form_column(record, input_name)
>    if record.name
>      select_tag input_name, options_for_select(record.name)
>    else
>      select_tag input_name, options_for_select([])
>    end
>    end
> end
> 
> is this correct ?

No, you have to set the same id as AS set usually. If you are using master 
branch you will get an options hash instead of input_name, so it's easier:
def value_form_column(record, options)
if record.name
select :record, :value, options_for_select(User::LIST[record.name]), options
....

If you are using rails-2.3 branch, you can use active_scaffold_input_options to 
get the id:
def value_form_column(record, input_name)
column = active_scaffold_config.columns[:value]
id = active_scaffold_input_options(column)[:id]
if record.name
select :record, :value, options_for_select(User::LIST[record.name]), :name => 
input_name, :id => id
.....

> sorry for bottoring with this but the documentation is so light
> 
> when .update_column  is exexcuted i get
> 
> RJS error:
> TypeError: Cannot call method 'up' of null

You get that error because cannot get the field to update, because you are not 
using AS id schema.

> 
> >>   I searched all the docs but only possible solution is to use Custom
> >> 
> >> Association Options, but this means the values should be stored in the
> >> database
> >> 
> >> thank you

-- 
Sergio Cambra .:: entreCables S.L. ::.
Mariana Pineda 23, 50.018 Zaragoza
T) 902 021 404 F) 976 52 98 07 E) [email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails plugin" 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/activescaffold?hl=en.

Reply via email to