Forum: Ruby on Rails Getting an attr_accessor to work

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ea712fa65258a359b36d3d4e6a71cdbd?d=identicon&s=25 Asa Romberger (Guest)
on 2014-06-22 04:35
(Received via mailing list)
I have a user model with a number of fields representing the user
profile.

When a user is first signing up, I have an initial question I want to
ask
that is a one time and not part of the user profile.

In the model, I have:
    attr_accessor :completed_cfdym
    validates(:completed_cfdym, inclusion: { in: ['Yes', 'No'], message:
"%{value} is not a valid response"} )

In the view, I have:

    <% f.label :completed_cfdym, "Have you Completed 'A Conversation for
The Difference You Make'", class: 'span5'  %>
    <%= f.select :completed_cfdym, {'' => nil, 'Yes' => 'Yes', 'No' =>
'No'}, {}, { :class => 'span1' } %><br>

In the controller, in the create method, I have:

    if params[:completed_cfdym] == 'Yes'
        Conversation.create_holder(@user)
    end

Looking at the console model in the development environment, I see that
completed_cfdym is returning nil, 'Yes', or 'No' based on what I select.

However:

The validation fails and, when it returns to the forms page, the
completed_cfdym is not preserved - it always returns to ''

Also, if I remove the validates, the test in the controller does not
seem
to be able to recognize the 'Yes'.

What am I missing?
This topic is locked and can not be replied to.