Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > Шаманские параметры Ruby on Rails ;)


Автор: pizgin 4.10.2007, 23:13
Никак не могу понять где смотреть доки по возможностям Rails...
Нужно например сделать select с профессиями. Вроде бы нужно так:

Код

<select name="user[profession_id]">
  <option selected value="0">-- Выберите профессию</option>
         <% @professions.each do |prof| %>
           <option value="<%= prof.id %>"
                <%= ' selected' if prof.id == @user.profession_id %>>
                <%= prof.title %>
           </option>
         <% end %>
  </select></p>


Сделал. Все нормально, работает. Потом где-то в сети увидел что есть
collection_select ;) Понять как он работает по документации имхо
ВООБЩЕ НЕ ВОЗМОЖНО smile
Крутил, вертел... Потом кое-как получилось (опять же по примерам из
сети)

Код

<%= collection_select(:user, :profession_id,
@professions, :id, :title) %>


Красиво, но нужно чтобы первая строка была не из списка (ну типа "--
выберите то-то"). Искал, единственное что нашел это (опять не из
справки, все по примерам):

Код

<%= collection_select(:user, :profession_id, @professions, :id, :title,
{ :include_blank => true }) %>


Да, получше стало. Но нужна не пустая строка, а с текстом, что мол
выбрать нужно

Погуглил, нашел еще один пример:

Код

<%= collection_select(:user, :profession_id, @professions, :id, :title,
{ :prompt => '-- Выберите профессию' }) %>


На этот раз все. Меня все устраивает.

Вопрос: "Где можно узнать какие существовуют эти
вот :include_blank, :prompt и прочие интересные параметрах которые
нигде не описаны?" 

Автор: MPie 1.11.2007, 14:12
Можно посмотреть в тестах. Там каждый тест-кейс может служить неплохим примером. Параметры, о которых Вы говорите, я нашёл примерно здесь: 

/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/test/template/form_options_helper_test.rb

Автор: OmeZ 4.11.2007, 08:26
Погугли CHM доку по Rails, я нашел очень быстро и там станет все понятно

Автор: sunchess 7.3.2008, 14:57
Все проще ;)
select("user", "profession_id", Profession.find(:all).collect {|p| [ p.name, p.id ] }, { :include_blank => true })

Добавлено через 11 минут и 27 секунд
Цитата(OmeZ @ 4.11.2007,  08:26)
Погугли CHM доку по Rails, я нашел очень быстро и там станет все понятно

Зачем гуглить все есть на локалке smile
D:\Ruby\lib\ruby\gems\1.8\doc\
или
 Старт\ruby\RubyGems\Start RubyGems RDoc Server
и в браузере http://localhost:8808/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)