ruby-on-rails-3 – simple_form – 如何使用嵌套输入文本框创建
发布时间:2020-12-17 03:04:06 所属栏目:百科 来源:网络整理
导读:我正在使用simple_form来呈现我的表单并尝试获得以下行为:我希望客户端从3个选项中进行选择.在每个选项中,他提供额外的一两个领域. 所以我想要这样的事情: Please set your preferences: o Pay me on a specific day - [input field to get the day] o Pay
我正在使用simple_form来呈现我的表单并尝试获得以下行为:我希望客户端从3个选项中进行选择.在每个选项中,他提供额外的一两个领域.
所以我想要这样的事情: Please set your preferences: o Pay me on a specific day - [input field to get the day] o Pay me a specific amount of money - [input field for the amount] o Pay me on a regular basis - [radio buttons to choose between weekly/monthly basis] 我可以按如下方式创建单选按钮,但不能在其下添加嵌套字段: <%= simple_form_for @client,action: 'edit_payment_method' do |f| %> <%= f.input :payment_type,label: 'Please set your preferences:',collection: [ ['Pay me on a specific day',:specific_day],['Pay me a specific amount of money',:specific_money],['Pay me on a regular basis',:regular_basis] ],as: :radio_buttons %> <%= f.button :submit,'Submit' %> <% end %> 创建嵌套文本框的最佳方法是什么? 谢谢!扎克 解决方法
simple_form
collection_radio_buttons可能就是你想要的.它的options参数接受一个块,允许您自定义每个单选按钮呈现的内容.看看rdocs
here中的示例.
编辑: 这基本上是你需要以相对通用的方式做的事情(尚未经过测试,但我正在运行类似的东西).将其他控件放在每个单选按钮的部分控件中: <% radio_buttons = [ { :text => 'Pay me on a specific day',:value => :specific_day,:partial => "<textbox_partial_name>",:locals => { :any_locals => :your_partial_needs} },{ :text => 'Pay me a specific amount of money',:value => :specific_money,{ :text => 'Pay me on a regular basis',:value => :regular_basis,:partial => "<radio_partial_name>",] %> <%= simple_form_for @client,action: 'edit_payment_method' do |f| %> <%= f.label t("account.update_payment_method.title") %> <%= f.collection_radio_buttons :payment_type,(collection.collect do |r| [r[:text],r[:value],r[:partial].nil? ? "" : r[:partial],r[:locals].nil? ? {} : r[:locals]] end),:second,:first do |builder| %> <%= builder.label{builder.radio_button(:class => 'payment_method_options') + builder.text} %> <% unless builder.object[2].blank? %> <%= render :partial => builder.object[2],:locals => builder.object[3] %> <% end %> <% end %> <%= f.button :submit,'Submit' %> <% end %> 您可以省略:partial对于任何不需要其他控件的单选按钮,以及:locals(如果您的部分不需要它).还有一些方法可以根据您的情况简化此代码,但此示例说明了如何在需要时为每个单选按钮添加更复杂的控制结构. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |