在Rails 4中使用简单表单的单选按钮

时间:2014-08-25 01:49:15

标签: ruby-on-rails simple-form

我正在努力理解Simple Form文档。我的Rails 4应用程序中有一个表单 - 使用simple_form构建。

我已阅读Simple Form文档。我无法理解它,也无法找到任何资源来帮助它分解。

该文档提供了以下使用简单形式的单选按钮的示例:

 f.collection_radio_buttons :options, [[true, 'Yes'] ,[false, 'No']], :first, :last

您可以从文档中看到它继续描述要应用的标签。

http://rubydoc.info/github/plataformatec/simple_form/master/SimpleForm/FormBuilder#collection_radio_buttons-instance_method

我无法从多个方面理解本文档。什么:首先,:最后一次?当我尝试按照这个例子时,我得到一个错误(未定义的方法`merge' for:last:Symbol)。我不了解文档中标签示例的任何构造。在你可以引用我的地方,这些例子是否有分解?

我试图从其他帖子的答案中收集反馈,并提出以下建议。请有人帮我确认这条线路有什么问题。

<%= f.collection_radio_buttons :project_image, :options, [[true, 'Yes'], [false, 'No']], :first, :last, :default => true, label: 'Would you like add an image to your project pitch?'  %>

我热衷于学习如何使用Simple Form,但觉得文档本身并不是我所掌握的。我已经使用Railscasts填补了一些空白,但我会非常感激地收到其他资源的建议以帮助我改进。

谢谢。

2 个答案:

答案 0 :(得分:0)

这可能更有意义

 <%= f.input :project_image, :as => :boolean, input_html: {checked: false} %>

答案 1 :(得分:0)

该文件易于理解。

- (Object) collection_radio_buttons(method, collection, value_method, text_method, options = {}, html_options = {}, &block) 

collection_radio_buttons有这些参数。

f.collection_radio_buttons :options, [[true, 'Yes'] ,[false, 'No']], :first, :last

对于这个expamle

  • :options是方法名称。
  • [[true, 'Yes'] ,[false, 'No']]是集合,它是一个数组数组,所有成员都有[value,lable]的结构。
  • :first是单选按钮的value_method,意思是获取如何从集合的每个成员获取值,使用第一种方法可以从truefalse获取该系列的成员。
  • :last是单选按钮的text_method,用于为每个单选按钮生成标签。

所以你可以使用将方法名称替换为project_image并添加另一个标签:

<%=f.collection_radio_buttons :project_image, [[true, 'Yes'] ,[false, 'No']], :first, :last %>
<%=f.lable  :project_image, 'Would you like add an image to your project pitch?'%>