заполнение поля выбора из функции контроллера в Rails - PullRequest
1 голос
/ 19 декабря 2009

У меня есть веб-приложение Rails с полем выбора:

<%= select_tag :foo %>

Я ищу написать в контроллере функцию, которая бы заполняла это поле выбора некоторыми значениями. Какой код мне нужно написать, чтобы сделать это?

Функция вызывается с использованием поля наблюдения:

<%= observe_field :foo, :url => { :action => :populate } %>

Хорошо, если значения жестко закодированы в функцию.

def populate
  # what goes here?
end

Спасибо!

Ответы [ 2 ]

1 голос
/ 21 декабря 2009

Попробуйте что-то вроде этого ...

В вашем application_helper.rb введите следующее:

$MEMBERROLE = ['Student', 'Coach', 'Staff', 'Administrator']

Тогда, на ваш взгляд, вы можете поставить следующее:

 <p>
   <%= f.label :role %><br />
   <%= f.select(:role, options_for_select($MEMBERROLE.collect{|x| [x, $MEMBERROLE.index(x)]}, @member.role)) %>
 </p>

Предполагается, что у вас есть модель Member, которая выглядит примерно так:

  create_table "members", :force => true do |t|
    t.string "name"
    t.integer "role"
  end

Это очень простой способ сделать это. Вы также можете иметь роли в качестве отдельной таблицы, но я подумал, что то, что вы ищете, было излишним ...

0 голосов
/ 19 декабря 2009

Я думаю, вы неправильно поняли, что делает observe_field. Он выполняет некоторый JavaScript, когда поле изменяется. Если бы вы могли дать нам более подробную информацию о том, что вы хотите сделать, это было бы неплохо.

Например, пытаетесь ли вы что-то сделать, например, изменить значения выбора, в зависимости от того, что вы выбрали в другом поле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...