El Monday 11 May 2009 22:07:08 JannaB escribió:
> I have a table, 'statuses' as follows:
> id as int
> statusname as varchar
> autoadvanceto as int
>
> The 'autoadvanceto' column references an id in the statuses table
> itself. (I have not specified any association in the Status model --
> would I do both a belongs_to as well as a has many, with foreign_key
> => 'autoadvanceto' ?)

Yes, you should do it. Then you can use 
config.columns[:association_column].form_ui = :select, and you will get your 
select without a form override.
You may need some custom association options:
http://wiki.github.com/activescaffold/active_scaffold/custom-association-options

>
> My real question here, is in the module StatusHelper. I am setting up
> a select in form view of the autoadvanceto field so as to show the
> various statusnames to select from. This it does fine -except- it does
> not prepopulate the select box by setting the autoadvanceto that is
> already in the database for the given row, nor does it update the
> database if I change what is in the select box.
>
> I've followed to docs very closely here I believe, specifically:
>
> http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.htm
>l
>
> Below is my attempt in my module StatusHelper to accomplish this. can
> anyone please tell me why my populated select box is not saving the
> selection on update, and why it is not selecting what the
> autoadvanceto value is if not 0 to begin with? Thank you, -Janna B.
>
> def autoadvanceto_form_column(record, input_name)
>       select("status", "autoadvanceto", getstatuses.collect {|p|
> [ p.statusname, p.id ] }, {:prompt => 'Select:'})#, :include_blank =>
> true})
>   end

That code will search @status.autoadvanceto, you should use select("record", 
"autoadvanceto", ... because ActiveScaffold controllers method use @record to 
get the record to be edited.
Also you should use the input_name, in some cases ActiveScaffold won't save 
your field (in subforms for example):

def autoadvanceto_form_column(record, input_name)
  select("status", "autoadvanceto", getstatuses.collect {|p| [ p.statusname, 
p.id ] }, {:prompt => 'Select:'}, :name => input_name)
end

Anyway, using belongs_to and :select form_ui it's easier (and better IMHO)

-- 
Sergio Cambra .:: entreCables S.L. ::.
Nicolás Guillén 6, locales 2 y 3. 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