我使用Rails 4和Simple_Form作为应用程序,对于我必须实现的前端布局,我需要能够在label标签中包含输入标签。输出需要如下所示:
<label class="input string optional profile_first_name">
<input class="string optional" type="text" value="" name="profile[first_name]" id="profile_first_name">
</label>
我尝试创建一个如下所示的自定义包装器:
config.wrappers :custom_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.optional :maxlength
b.optional :pattern
b.optional :min_max
b.optional :readonly
b.wrapper tag: 'label' do |ba|
ba.use :input
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end
我遇到的问题是生成的html缺少Smart_Form通常生成的标签文本。我确信必须有一种方法来正确格式化包装器以显示标签标签内的输入和标签仍然显示,但我不知所措。提前谢谢!
答案 0 :(得分:0)
您应该只需在需要显示标签的位置插入ba.use :label_text
即可。
b.wrapper tag: 'label' do |ba|
ba.use :label_text
ba.use :input
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end