2009-10-14 29 views
6

Tôi có vấn đề này tất cả các thời gian trong các ứng dụng đường ray của tôi và tôi vẫn cần giải pháp chính xác. Bất cứ khi nào người dùng chỉnh sửa hồ sơ của riêng họ, trường mật khẩu đang được phổ biến. Tôi nghi ngờ Firefox của nó như là thiết lập @ user.password = nil trong hành động chỉnh sửa không giúp đỡ.Làm cách nào để ngăn chặn trường mật khẩu được điền trước khi chỉnh sửa?

Sự cố là xác nhận mật khẩu không được điền để xác thực không thành công do lỗi trùng khớp.

Tôi đã thử những điều sau đây:

<%= f.label :password %> 
<%= f.password_field :password, :value => "", :autofill => false, :class => 'max' %> 

Nhưng điều đó không làm điều đó. Tôi cũng đã thử :autofill => 'off' không hoạt động.

Có ai có bất kỳ đề xuất nào không? Cảm ơn.

Trả lời

15

Set autocomplete = "off" trong hình thức và đầu vào thẻ

<form name="blah" autocomplete="off"> 
<input type="password" autocomplete="off"> 
</form> 
+0

Điều này đã làm việc hoàn hảo. Cảm ơn bạn! – tsdbrown

+0

Trong Ruby để sao chép và dán những người lười biếng như tôi: <% = form_for (người dùng,: html => {autocomplete: "off"}) do | f | %> –

+0

Giải pháp này không hoạt động với các trình duyệt cũ, như ie7 hoặc ie8 – Jorge

1

Có hai giải pháp:

  1. nói firefox không để điền vào các lĩnh vực này;

  2. cung cấp cho trường mật khẩu một tên khác với "mật khẩu".

+1

1. Tôi không thể kiểm soát người dùng. 2. Great ý tưởng mà tôi chắc chắn sẽ làm việc, tuy nhiên tôi sẽ phải sửa đổi lĩnh vực mật khẩu trong một vài dự án, một số với AuthLogic, một số với RA vv vv – tsdbrown

0

Các tùy chọn HTML đang băm riêng có rất cú pháp sẽ trông như thế này

<%= f.password_field :password, { :value => '' } %> 

này nên thay thế thuộc tính value trong HTML phản hồi.

+0

Cảm ơn phản hồi mặc dù cú pháp hoàn toàn hợp lệ như vậy. Danh sách các tham số sau khi phương thức vẫn là một băm không có hoặc không có dấu ngoặc. Xem các ví dụ sau: http://apidock.com/rails/ActionView/Helpers/FormHelper/password_field – tsdbrown

+0

Khi tham số cuối cùng là một băm, các dấu ngoặc là tùy chọn; không bắt buộc cũng không bị cấm. – giorgian

+0

Đúng vậy, cảm ơn vì đã chỉ ra cú pháp cú pháp của riêng tôi. Giá trị: value => '' nên là tất cả những gì cần thiết. – triendeau

2

Dòng f.password_field :password, :value => '' không hoạt động đối với tôi (trên đường ray 3.1). Mặc dù tôi đã bỏ trống trường bằng f.password_field :password, :value => nil.

Trân

0

Là một lựa chọn lĩnh vực, bạn có thể vượt qua nó như thế này

<%= f.password_field :password, {:autocomplete =>"off"} %> 
Các vấn đề liên quan