choose one of N: single form or multiple forms?

This may be as much a pure HTML question as a Rails question, but I'm just feeling my way through ActionView and need all the help I can get! :slight_smile:

The scenario: A user types a street address into a form and hits return. My app uses Google geocoding services (sweet) to resolve the user input into a full street address. It may resolve into zero addresses (no match), one address (exact match), or multiple addresses (partial match).

From this, I want to render a form that lets the user verify his or her street address. In the zero match case, I can flash an error message saying there were no matches and re-render the original form. With one or more matches, I want a "this is my address" button next to each resolved address to let the user verify his or her address:

<label>type your address: <text field>15 wayland street <button>[this is my address] <label>15 wayland st, atlanta, ny 14808 <button>[this is my address] <label>15 wayland st, boston, ma 02125 <button>[this is my address] <label>15 wayland st, sherrill, ny 13461

What I'm not at all sure about is the parameters to add to each submit button. I want the button label to say "this is my address", but pass a fully resolved address to the server depending on which button is pushed. I tried :name => candidate.full_address, :value => "this is my address" -- I could make that work, but the parameters passed to my server are 'backwards' (key = full_address, value = "this is my address").

So my question is: how would you structure a Rails form to do this? Assume @premise is the controller, and that @candidates is a list of candidate addresses.

TIA.

This may be as much a pure HTML question as a Rails question, but I'm just feeling my way through ActionView and need all the help I can get! :slight_smile:

The scenario: A user types a street address into a form and hits return. My app uses Google geocoding services (sweet) to resolve the user input into a full street address. It may resolve into zero addresses (no match), one address (exact match), or multiple addresses (partial match).

From this, I want to render a form that lets the user verify his or her street address. In the zero match case, I can flash an error message saying there were no matches and re-render the original form. With one or more matches, I want a "this is my address" button next to each resolved address to let the user verify his or her address:

<label>type your address: <text field>15 wayland street <button>[this is my address] <label>15 wayland st, atlanta, ny 14808 <button>[this is my address] <label>15 wayland st, boston, ma 02125 <button>[this is my address] <label>15 wayland st, sherrill, ny 13461

What I'm not at all sure about is the parameters to add to each submit button. I want the button label to say "this is my address", but pass a fully resolved address to the server depending on which button is pushed. I tried :name => candidate.full_address, :value => "this is my address" -- I could make that work, but the parameters passed to my server are 'backwards' (key = full_address, value = "this is my address").

So my question is: how would you structure a Rails form to do this? Assume @premise is the controller, and that @candidates is a list of candidate addresses.

You could use button_to unless you're already inside a form. Or use link_to and pass all the params, styling the link to look like a button. Or use javascript to populate the form with the details when they click the button.

-philip

@phillip: thanks for the suggestions. Upon reflection, since the Google geocoder is already set up for client-side javascript queries, that's probably the best way to go.

- ff