Add value to select box


#1

Hey guys!

I was wondering. I’m generating a select box in my view where the user
can pick from a number of alternatives. However, I would like the last
option to be “Add new…” and then a box would pop up allowing the
user to enter a new value.

Now I’ve got all the JavaScript and the Rails code to allow the user
to enter a new option, the problem is how do I add the last
alternative (“Add new…”) to my select box?

Take care!
Alex


#2

Now I’ve got all the JavaScript and the Rails code to allow the user
to enter a new option, the problem is how do I add the last
alternative (“Add new…”) to my select box?

In your controller:

@options = Option.find(:all).collect {|p| [ p.name, p.id ] }
@options << [“Add New”, nil]

Then in your view:

<%= select(“user”, “choice_id”, @options, { :include_blank => true })
-%>

This should work, because select just iterates over an array taking
the .first and .last values from it.

Mikel


http://lindsaar.net/
Rails, RSpec and Life blog…


#3

Hi Alex,

However, I would like the last option to be “Add new…”
and then a box would pop up allowing the user to enter a
new value.

Now I’ve got all the JavaScript and the Rails code to allow
the user to enter a new option, the problem is how do I add
the last alternative (“Add new…”) to my select box?

Assuming that the action that adds the new option creates a new record
in
the db and that you’re rendering a partial to display the select in the
first place (if not, refactor), just add a find to your action and
re-render
the select via RJS.

HTH,
Bill