2015-01-21 3 views
0

Я начал программировать с Rails после того, как я закончил некоторые уроки в Ruby. Когда я посмотрел на чей-то код, я смутился. Похоже, он делает какую-то форму с помощью Rails, но я просто не могу понять, как это работает. Ну просто посмотрите на код ... Надеюсь, что вы можете помочь мне понять это:Что делает f.input в форме рельсов?

=f.inputs do 
    =f.input :type, :as => :transmission, :label => false 
    =create_submit_link('Do something',:id=>'transmit') 

Теперь f.input строка напечатает мне 3 строки следующего материала: (строка 1): radio_button | labeltext | текстовое поле; (строка 2): 1x radio_button | labeltext | number_field; (строка 3): radio_button | labeltext |

Как это возможно? : O

+2

Он исходит из [simple_form] (https://github.com/plataformatec/simple_form) драгоценного камня. –

ответ

1

f.inputs не определен в рельсах. Возможно, вы используете «простую форму». Simple Form имеет различные виды помощников для создания содержимого html. Он имеет различный метод, такой как: text, radio, email однако параметры :as => :transmission, как представляется, определяются пользователем, так как он не определен в «простой форме». Вы можете посмотреть https://github.com/plataformatec/simple_form/blob/master/lib/simple_form/action_view_extensions/form_helper.rb. f.input Работает так же, как f.textbox или аналогично рельсам, но у него гораздо больше опций, чем голой рельс html-помощников.

+0

Примечание: 'SimpleForm' это просто обертки вокруг по умолчанию' form_for' и 'fields_for' помощников в' Rails'. –

+0

Да, это просто обертки вокруг form_for и fields_for help – Sanjiv

+0

Хорошо, спасибо. – Yui