2011-09-29 13 views
25

Tôi đang sử dụng Biểu mẫu đơn giản trong ứng dụng của mình và tôi muốn xóa * để chỉ ra một thuộc tính được yêu cầu trên tất cả các biểu mẫu của tôi (hiện tại và các biểu mẫu chưa được tạo).Rails simple_form attribute required mark (*)

Tôi đã cố gắng để thiết lập trong simple_form.rb:

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

Và tôi đã cố gắng để sửa đổi simple_form.en.yml:

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

Tôi biết tôi có thể thiết lập :required => false trên từng lĩnh vực, nhưng tôi muốn để làm sạch tăng số lượt xem & đặt nó một lần.

+2

Bạn có khởi động lại máy chủ sau khi thay đổi giá trị không? – Dogbert

Trả lời

43

Đặt simple_form.required.mask thành '' sẽ hoạt động nếu bạn khởi động lại máy chủ.

Nhưng bạn có thể gỡ bỏ nó thay đổi cấu hình:

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

để

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

cảm ơn bạn - khởi động lại máy chủ đã thực hiện thủ thuật ... – Chip

+0

Làm việc như một nhà vô địch. Cảm ơn – cbmeeks

+2

Tôi đã đổi thành: config.label_text = lambda {| label, required | required.present? ? "# {label}": "# {label}"} – cbmeeks

19

Bạn cũng có thể làm

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

chỉ

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

và khởi động lại máy chủ đường ray của bạn. Sau đó, nó hoạt động.

+1

Có trình xác thực trên thuộc tính [ghi đè] (https://github.com/plataformatec/simple_form/ blob/v3.1.0/lib/simple_form/helpers/required.rb # L10-18) cài đặt này. –

6

on Rails 4 chỉ loại bỏ các "yêu cầu" từ

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

vì vậy nó phải

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

Validation vẫn hoạt động!