2011-09-29 78 views
25

我在我的应用程序中使用简单窗体,我想删除*以指示我的所有窗体(现有和尚未创建窗体)都需要属性。Rails simple_form属性所需的标记(*)

我试图在simple_form.rb设置:

# Whether attributes are required by default (or not). Default is true. 
    config.required_by_default = false 

而且我试图修改simple_form.en.yml

required: 
     text: 'required' 
     mark: '' # <------ tried setting this to blank. 

我知道我可以在每个字段设置:required => false,但我要清理向上看&设置一次。

+2

您是否在更改值后重新启动服务器? – Dogbert

回答

43

如果重新启动服务器,则应将simple_form.required.mask设置为''

但你可以将其删除更改配置:

# config.label_text = proc { |label, required| "#{required} #{label}" } 

config.label_text = proc { |label, required| "#{label}" } 
+1

谢谢 - 重新启动服务器的伎俩... – Chip

+0

工作就像一个冠军。谢谢 – cbmeeks

+2

我将我的地址改为:config.label_text = lambda {| label,required | required.present? ? “#{label}”:“#{label}”} – cbmeeks

19

你也可以做

simple_form_for @model, :defaults => {:required => false} 
0

只是

# Whether attributes are required by default (or not). Default is true. config.required_by_default = false

并重新启动您的Rails服务器。然后它工作。

+1

在属性上有一个验证器[overrides](https://github.com/plataformatec/simple_form/ blob/v3.1.0/lib/simple_form/helpers/required.rb#L10-18)这个设置。 –

6

on Rails的4只是删除了 “必要” 字

config.label_text = lambda { |label, required, explicit_label| "#{required} #{label}" } 

所以它应该是

config.label_text = lambda { |label, required, explicit_label| "#{} #{label}" } 

验证仍然有效!