Rails 形式的 f.input 有什么作用?

Yui*_*Yui 2 ruby forms ruby-on-rails

在完成一些 Ruby 课程后,我开始使用 Rails 进行编程。当我查看某人的代码时,我感到困惑。看起来他使用 Rails 制作了某种表格,但我就是不明白它是如何工作的。好吧,看看代码......希望你能帮助我理解这一点:

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

现在 f.input 行将打印 3 行以下内容: (row 1): radio_button | 标签文本 | 文本域; (第 2 行):1x radio_button |labeltext| 数字字段;(第 3 行):radio_button |labeltext|

这怎么可能?:哦

小智 5

f.inputs未在 Rails 中定义。您可能正在使用“简单形式”gem。Simple Form有各种视图助手来生成 html 内容。它有各种方法,例如:textradioemail但是:as => :transmission选项似乎是用户定义的,因为它也没有以“简单形式”定义。您可以查看https://github.com/plataformatec/simple_form/blob/master/lib/simple_form/action_view_extensions/form_helper.rbf.input工作方式与 Rails 相同f.textbox或相似,但它比 Bare Rails html 助手有更多的选项。