associate hidden field with another field in a form

In my form I have a select menu for US States. I would like to include
the capitals of those states as a hidden parameter when passed to the
model. Of course, the capital should match the state chosen.

I know I can set a attr_accessor :state_capitals in the model, or even
make a migration to update the table and add the column, but I'm having
some trouble creating this in the view. Is it ok for the view to have
some logic in this case?

I apologize in advance if this is a frequently asked question, I'm
fairly new to programming and couldn't find the right terminology for my
search queries.

Thank you in advance.

In my form I have a select menu for US States. I would like to include
the capitals of those states as a hidden parameter when passed to the
model. Of course, the capital should match the state chosen.

I don't understand exactly what you are trying to do, here you say you
want to pass this information to the model (did you mean controller).
What has this got to do with a hidden field on the form.

I know I can set a attr_accessor :state_capitals in the model, or even
make a migration to update the table and add the column, but I'm having
some trouble creating this in the view. Is it ok for the view to have
some logic in this case?

Again I am unclear where this information is coming from and what you
are trying to do with it. Perhaps you could explain in a little more
detail what you are trying to accomplish.

Colin

Colin Law wrote:

In my form I have a select menu for US States. I would like to include
the capitals of those states as a hidden parameter when passed to the
model. Of course, the capital should match the state chosen.

I don't understand exactly what you are trying to do, here you say you
want to pass this information to the model (did you mean controller).
What has this got to do with a hidden field on the form.

I know I can set a attr_accessor :state_capitals in the model, or even
make a migration to update the table and add the column, but I'm having
some trouble creating this in the view. Is it ok for the view to have
some logic in this case?

Again I am unclear where this information is coming from and what you
are trying to do with it. Perhaps you could explain in a little more
detail what you are trying to accomplish.

Colin

Colin,

Thank you for your reply. Yes, passing the information to the controller
is what I meant (sorry about that!). This is just a toy project where
I'd like to use the extra parameters (based on what the user enters) to
"spit out" more information in the view. For example, If the user choses
New York as their state and clicks submit, the resulting "show" view
shows the user other information about the state they chose from the
selector list (such as the capital).

Thanks!

If you know the states name, then you automatically know the capitals
name, dont you?
So then it wouldnt be necessary to submit the capital name as a hidden
field, as you can retrieve it through the state object.
Or am I missunderstanding something?

Sharagoz wrote:

If you know the states name, then you automatically know the capitals
name, dont you?
So then it wouldnt be necessary to submit the capital name as a hidden
field, as you can retrieve it through the state object.
Or am I missunderstanding something?

Hi Sharagoz,

Thanks for the reply! Yes, that is a possible solution, but this is just
a toy project meant for learning about hidden form fields. I'm mainly
curious what I could do with them.

Anything you put in a hidden form field will be available in the
params array in the controller. That is about it really.

Colin

Colin Law wrote:

a toy project meant for learning about hidden form fields. I'm mainly
curious what I could do with them.

Anything you put in a hidden form field will be available in the
params array in the controller. That is about it really.

Colin

I appreciate the reply, however what I'm trying to figure out is if I
could pass to the controller a specific parameter based on what the user
selects in the form select menu. Basically have some logic in the form
so that if I choose :state => "New York" from the select menu of states,
the hidden field :state_capital => "Albany" will be passed along with
it. I used formtastic to easily generate the hidden fields, but I'm
having trouble with the logic.

You could just wrap the capital's in a partial then put that in a
hidden tag.

Ze Ca wrote:

Colin Law wrote:

a toy project meant for learning about hidden form fields. I'm mainly
curious what I could do with them.

Anything you put in a hidden form field will be available in the
params array in the controller. That is about it really.

Colin

I appreciate the reply, however what I'm trying to figure out is if I
could pass to the controller a specific parameter based on what the user
selects in the form select menu. Basically have some logic in the form
so that if I choose :state => "New York" from the select menu of states,
the hidden field :state_capital => "Albany" will be passed along with
it. I used formtastic to easily generate the hidden fields, but I'm
having trouble with the logic.

What several of the responses are trying to tell you is that what you're
attempting is pointless. If the server-side code can determine the state
capital from the state name then there's no point shoving that
information into a hidden field. Just look it up server-side.

HTML forms, once generated and sent to the client browser, are static.
There is no interactions between form fields on the client-side. In
order to add client-side interaction you need client-side scripting
(generally JavaScript).

In your case the JavaScript would need to know the state capitals by
state name. In order to push that JavaScript to the client you need to
send it to them from the server-side. Since in either case the
sever-side already knows how to lookup state capitals from state names,
putting that information into a hidden field is pointless.