2011-07-09 32 views
9

Tôi có đoạn codeThay đổi văn bản tự động tạo ra từ f.label

<%= form_for(@user) do |f| %> 
    <div> 
    <%= f.label :email, :class=>'inline betaLabelTextField' %> 
    <%= f.text_field :email, :class=>'betaTextField' %> 
    </div> 
<% end %> 

Vấn đề là mã này tự động tạo ra html

<div> 
     <label class="inline betaLabelTextField" for="user_email">Email</label> 
     <input class="betaTextField" id="user_email" name="user[email]" size="30" type="text" /> 
    </div> 

Bên trong một biểu mẫu. Làm thế nào tôi có thể thay đổi 'Email' thành 'Địa chỉ Email'?

Trả lời

23

Cách đơn giản nhất là để làm điều này thay vì:

<%= form_for(@user) do |f| %> 
    <div> 
    <%= f.label :email, "Email Address", :class=>'inline betaLabelTextField' %> 
    <%= f.text_field :email, :class=>'betaTextField' %> 
    </div> 
<% end %> 
+0

@moritz (dưới đây) câu trả lời là nhiều hơn cách Rails. Khía cạnh quan trọng chính là duy trì DRY. Khi được định nghĩa trong activerecord: mô hình: thuộc tính: bạn sẽ a) tránh mã không cần thiết và b) sẽ luôn có từ đúng trong mỗi biểu mẫu cho mỗi ngôn ngữ – awenkhh

+0

Làm cách nào bạn có thể sửa đổi tất cả f.label, thêm vào cuối, ví dụ: " : ".. Làm thế nào bạn có thể sửa đổi lớp học? –

7

Điều này được thực hiện bằng cách thêm các giá trị i18n thích hợp vào config/locale/en.yml. Vui lòng xem hướng dẫn tại http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models để biết định dạng của tệp đó cho các giá trị bản ghi đang hoạt động.

+0

Đây là một cách để làm điều đó, nhưng đó là không cần thiết trừ khi bạn đã thực hiện quốc tế hóa. – henrikhodne

+1

Tôi sẽ không nói điều đó là không cần thiết. Tôi nghĩ, nó chỉ phụ thuộc vào nơi bạn muốn giữ dữ liệu này. Nếu bạn xem xét việc đặt tên riêng biệt cho các chế độ xem, bạn nên giữ chúng trong các tệp dịch. Vì vậy, nó sắp xếp xuống đến một vấn đề của hương vị. – moritz

+0

Tôi đoán bạn nói đúng. Khi tôi nghĩ về nó, cách của bạn sẽ cập nhật nhãn ở khắp mọi nơi, trong trường hợp nó được sử dụng ở một nơi khác. – henrikhodne

Các vấn đề liên quan