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’ } %>
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?