2011-09-29 96 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}" } 

驗證仍然有效!