How to copy a selected value into a text_field

In app\views\expenses\new.html.erb, I (mistakenly) replaced the
script/generated:
<%= f.label :vendor %>

<%= f.text_field :vendor %>
with:
<%= f.label :vendor %>

<% @current_vendors = Vendor.find(:all, :order=>“nickname”) %>
<%= select_tag “list”, options_for_select(@current_vendors) %>

This (if I haven’t introduced any typos here) works fine, except that
the user-selection doesn’t really populate the database’s vendors
column in the expense record.

How do I repair this situation? I’d like to restore the the original
text field and somehow populate it with the user-selected value from
the select control.

RichardOnRails wrote:

In app\views\expenses\new.html.erb, I (mistakenly) replaced the
script/generated:
<%= f.label :vendor %>

<%= f.text_field :vendor %>
with:
<%= f.label :vendor %>

<% @current_vendors = Vendor.find(:all, :order=>“nickname”) %>
<%= select_tag “list”, options_for_select(@current_vendors) %>

This (if I haven’t introduced any typos here) works fine, except that
the user-selection doesn’t really populate the database’s vendors
column in the expense record.

How do I repair this situation? I’d like to restore the the original
text field and somehow populate it with the user-selected value from
the select control.

Hi,
try this <%= select_tag “expense_vendor”,
options_for_select(@current_vendors) %>.

hi RichardOnRails

Try this

<%= select_tag ‘expense[vendor]’,
options_for_select(@current_vendors) %>

cheers,
sameera

On Apr 11, 7:18 am, RichardOnRails

PRiyanka and sameera: Thank you both very much!!! I’ve been pulling
my hair out for about a week with this thing.

I didn’t realize that the first argument of the select_tag function
apparently identifies the target
of the selected item in the format “table_name[column_name]”.

Now that you’ve given me this solution, I have to try to implement
what seems to me to by the more proper architecture for the Expense/
Vendor relationship, namely have the drop-down populate a hidden text
field (representing a expense-table column “vendor_id”) and have the
vendor name displayed in the expense page but be merely non-editable
data not stored in the database. Probably a “has” clause would come
into play here.

I’m going to take a stab at this, run into a blank wall again, and
finally post a more thoughtfully worded question.

Best wishes,
Richard

Hey, Priyanka and Sameera,

I’ve thought about design I’m aiming for and realized that I can
accomplish it in a very straight-forward way.

Again, thanks for your great solution to my original problem.

Best wishes,
Richard

On Apr 10, 10:18 pm, RichardOnRails

On Apr 12, 8:59 pm, RichardOnRails
[email protected] wrote:

PRiyanka and sameera: Thank you both very much!!! I’ve been pulling
my hair out for about a week with this thing.

I didn’t realize that the first argument of the select_tag function
apparently identifies the target
of the selected item in the format “table_name[column_name]”.

you could have dodged that if you’d gone with f.select :vendor,
choices
The second parameter to f.select has the same requirements as what you
give to options_for_select

Fred

On Apr 13, 8:03 pm, RichardOnRails
[email protected] wrote:

selecting an item did not populate the vendor text control, as the
former solution did, some I’m sure I misunderstand your intent.

It’s just a drop down box - it’s not going to do anything to any other
control on the page - just pointing out that you don’t need to use
select_tag when you have a form builder handing around.

Fred

Hi Fred,

I employed your code and it looks/works great. I could swear my old
code populated an adjacent text-box, but I must have been
hallucinating.

Thank for you additional post which jump-started my effort for neater
code.

Best wishes,
Richard

On Apr 14, 7:02 am, Frederick C. [email protected]

Hi Frederick,

Thanks for your additional help with a simpler solution. I tried to
replace my select_tag approach with the f.select approach:

<%= f.select :vendor, @current_vendors %>
<%# = select_tag "expense[vendor]",
  options_for_select(@current_vendors) %>
  1. The f.select :vendor provided the drop-down control, but
    selecting an item did not populate the vendor text control, as the
    former solution did, some I’m sure I misunderstand your intent.
  2. I haven’t found documentation for the precise thing you
    recommended, but I’m hopeful I’ll have some luck with
    ActionView::Helpers::FormHelper
    and/or Action View Form Helpers — Ruby on Rails Guides when I get time
    for careful study.

Best wishes,
Richard

On Apr 13, 1:26 pm, Frederick C. [email protected]