Forum: Ruby on Rails has_one problem in a form

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Ron M. (Guest)
on 2006-04-17 04:52
(Received via mailing list)
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,

Mark Reginald J. (Guest)
on 2006-04-17 09:15
(Received via mailing list)
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:

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.
Ron M. (Guest)
on 2006-04-18 16:32
(Received via mailing list)
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,

This topic is locked and can not be replied to.