Это действительно кажется достаточно простым, но по какой-то причине мне не хватает чего-то критического.Создание простого выпадающего меню в Rails
У меня есть мнение:
<% form_for :foo, @foo, :url => {:action => 'bar'} do |f|%>
<%= f.collection_select :range, FooModel::MONTHS%>
<%= submit_tag "Submit", :disable_with => "Submitting..." %>
<% end %>
У меня есть модель:
class FooModel < ActiveRecord::Base
MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep']
end
И у меня есть контроллер:
def new
@foo = FooModel.new
end
def index
respond_to do |format|
format.html # index.html.erb
end
end
def bar
if params[:foo]
@foos = params[:foo].inspect
end
respond_to do |format|
format.html # index.html.erb
end
end
Мой вопрос, как я могу получить в информация о том, какой элемент со списком был выбран при нажатии кнопки «Отправить»? Это не похоже на params [: foo], @foo или что-то еще, о чем я могу думать.
Обновление Глядя на него, похоже, я должен был бы назвать params [: range]? Это, однако, ноль.
Изменил это, теперь я получаю: undefined метод 'model_name 'для NilClass: Class в первой строке. – hector
Этот код в вашем новом действии? Если нет, вы можете попробовать заменить @foo на FooModel.new. –
Ах, ну, вам нужно, чтобы переместить это в нужное место. Теперь он говорит мне, что у меня есть неопределенный метод 'select_tag 'для # в строке f.select_tag –
hector