2015-01-21 59 views
0

我在Ruby完成一些課程後,開始使用Rails進行編程。 當我看着某人的代碼時,我感到困惑。 它看起來像他使用Rails的一些形式,但我不明白它是如何工作的。 也只是採取的代碼來看看...希望你能幫助我理解這一點:f.input在rails窗體中做了什麼?

=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)寶石。 – 2015-01-21 08:05:33

回答

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.rbf.inputf.textbox的工作方式相似,或者類似於rails,但它比裸機rails幫助程序有更多的選項。

+0

注意:'SimpleForm'只是''Rails'中的默認'form_for'和'fields_for'助手的封裝。 – 2015-01-21 08:22:25

+0

是的,它只是包裝form_for和fields_for幫助 – Sanjiv 2015-01-21 08:26:21

+0

好的,謝謝。 – Yui 2015-01-22 10:30:24