Has_one problem in a form

Hello all,

I have a syntax question. How does one refer to a field brought in via
has_one/belongs_to relationship in a form helper? Basically, I have two

class Resource < ActiveRecord::Base
has_one :other_thing

class OtherThing < ActiveRecord::Base
belongs_to :resource

It has the normal id-resource_id foreign key relationship. OtherThing
two fields, plus the foreign key, call them field1 and field2.

In the ruby console, I can access field1 a couple of ways:


Maybe a few other ways.

What I want is to update field1 in a form that also updates fields in
resources table. It’s simple for fields that REALLY belong to resource,
seemingly a problem for related fields in other tables.

select(:resource, :status, @statuses) works fine, for instance.

I’m looking for

select(:resource.other_thing, :field1, @options),
select(:resource, :other_thing.field1, @options),
select(‘resource’, ‘other_thing.field1’, @options),
select(:resource, :other_thing[:field1], @options)
or something to like that, but no luck.

Anyone have any thoughts on the proper syntax?

Thanks in advance,


Ron M. wrote:

select(‘resource’, ‘other_thing.field1’, @options),
select(:resource, :other_thing[:field1], @options)

No, you can’t do that at present, though a long time ago I
wrote a patch for it: http://dev.rubyonrails.org/ticket/2053

Instead you need to write:

@other_thing = @resource.other_thing
select :other_thing, :field1

then process their posted parameters separately in your

We develop, watch us RoR, in numbers too big to ignore.

Thanks Mark,

The select() loads properly with the option data now, but it doesn’t
the exising value in the database for some reason. I was able to bypass
that by using if/else logic in the form view to mark the “selected”
Thanks for the push in the right direction (separating out other_thing
it’s own variable). Much appreciated,