Rails:如何在表单的必填字段上禁用星号?

vsy*_*ync 37 ruby-on-rails simple-form ruby-on-rails-3.1

当我将'Required'属性添加
到html输入字段时,Rails会在标签之前预先添加星号(*).

有谁知道如何防止这种情况?

出于某种原因,Rails转换了这个:

<%= f.input :Company, :input_html => {:value => "", :id => "company_name"}, :label => "company name" %>
Run Code Online (Sandbox Code Playgroud)

进入这个:

<div class="input string required">
    <label for="company_name" class="string required">
    <abbr title="required">*</abbr> company name</label>
    <input type="text" value="" size="50" required="required" name="lead[Company]" id="company_name" class="string required">
</div>
Run Code Online (Sandbox Code Playgroud)

我不喜欢它在DIV中包装所有内容并向聚会添加ABBR元素.

我怎么能阻止这个?

Roc*_*etR 47

您可以在simple_form的语言环境文件中将所需标记设置为空值:

en:
  simple_form:
    required:
      text: 'required'
      mark: '*'
Run Code Online (Sandbox Code Playgroud)

或者使用CSS来隐藏它.

  • 这不再起作用了 - 你现在需要取消注释下面的"html"行(或者如果你还没有它的话,添加它),然后将其设置为`html:''` (10认同)
  • 这就是答案!如果有其他人想知道,你应该在config/locales /下创建一个文件名simple_form.en.yml (2认同)

Sha*_*ade 33

在config/initializers/simple_form.rb中添加以下行:

config.label_text = lambda { |label, required| "#{label}" }
Run Code Online (Sandbox Code Playgroud)

  • 使用3.0-RC2,我使用了这个:config.label_text = lambda {| label,required,explicit_label | "#{标签}" } (6认同)
  • 是否可以在每个表格的基础上删除星号? (2认同)
  • 以下适用于 SimpleForm 3.5.0:`lambda { |label, required,explicit_label| “#{标签}”}`。请注意包含“explicit_label”参数。 (2认同)

Les*_*ody 21

我正在使用Rails 3.1,对于给定的模型,我在_form.html.erb中有以下视图代码:

<div>
  <%= f.label :full_name %><br/>
  <%= f.text_field :full_name, :required => true %><br/>
</div>
Run Code Online (Sandbox Code Playgroud)

如果你这样做,标签不会显示星号.除非您发布代码,否则我无法确定您的方法是什么,以及我的解决方案是否适合所述方法.

更新的答案:听起来你从某人那里继承了这段代码.无论如何,在阅读完代码示例后,您肯定会使用simple_form gem.有关该gem的信息可以在这里找到https://github.com/plataformatec/simple_form.要回答您的问题,如果您更改以下代码:

<%= f.input :Company, :input_html => {:value => "", :id => "company_name"}, :label => "company name", :required => false %>
Run Code Online (Sandbox Code Playgroud)

这应该关闭星号.

我想补充一点,基于你对simple_form生成的HTML的厌恶,听起来你应该放弃使用Rails默认表单助手来重新编写你的表单代码,这可以在这里阅读http:// guides.rubyonrails.org/form_helpers.html.根据代码库的大小,你可能最好只是吮吸它并学习如何使用simple_form gem来节省时间,但如果你认为你有时间改变它,那就去吧.


VoA*_*VoA 15

最简单的方法是用这个css隐藏它:

abbr[title="required"] {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)


luc*_*tte 5

根本不是铁轨.这是simple_form的宝石.因此,如果您不希望所有包装元素都不使用simple_form.使用Rails表单助手.它比定制你不喜欢的东西更简单.