I'm working on a Rails app using version 2.3.4. I've got a big
form somewhere that uses nested attributes, but I can't seem to
access the constants from the other class.

Here's basically what I'm doing:

class User < ActiveRecord::Base
   has_one :pref
end

class Pref < ActiveRecord::Base
   FOO = 1
end

And in app/views/user.html.erb:

<% form_for( :user, :url => { :action => go_to, :id => id }, :html =>  
{ :multipart => true, :id => "user_form" } ) do |f| %>
   <%- fields_for :email_pref do |p| -%>
     <%= p.radio_button :bar, Pref::FOO  %>
     <%= p.label :bar, "Bar", :value => Pref::FOO %>
     ...
   <%- end -%>
   ...
<%- end -%>

Of course there's quite a bit more code than that, but this is where  
it goes
wrong. My error is:

/app/models/pref.rb:59: void value expression

Below it the code of the view, pointing out an error in the first line  
that uses Pref::FOO
I checked if it really is Pref::FOO that's the problem by adding <%=  
Pref::FOO %> before
the radiobutton. Also, User::FOO (and declaring the constant in the  
User class) works
perfectly fine. So it looks like I can't access a Pref constant from a  
User view, but that
sounds unreasonably limiting to me. I also tried ::Pref::FOO, which  
also doesn't work.
I really do want this constant in the Pref class. Putting it in User  
is not a good
solution for me.

Any idea why this is a problem and how to solve it?

And what does this mysterious "void value expression" mean? Googling  
it yields very few
results (and most of them are the same).


mcv.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to