2013-10-31 15 views
5

Tôi có biểu mẫu cho phép người dùng tìm kiếm các bản ghi hiện có để điền một liên kết. Mỗi "Đặt chỗ" thuộc về "Khách hàng". Vì vậy, biểu mẫu cho phép bạn nhập tên của khách hàng, tự động tìm kiếm và bạn nhấp vào khách hàng bạn muốn. Trường nhập bạn nhập vào sẽ hiển thị tên của khách hàng, nhưng để biểu mẫu hoạt động, tôi đặt customer_id trong trường nhập ẩn.Thông báo lỗi xác thực hiển thị Simple_Form bên cạnh trường nhập khác nhau

Tôi đang sử dụng gem đơn giản. Có ai biết nếu tôi có thể hiển thị các lỗi xác nhận cho customer_id bên cạnh trường nhập văn bản hiển thị tên của khách hàng không? Yêu cầu customer_id trong mô hình, vì vậy tôi cần biểu mẫu để cho người dùng biết rằng nếu họ để trống.

Xem mã (đơn giản - có một số hoạt Javascript để xử lý tìm kiếm khi bạn gõ vào hộp văn bản của khách hàng, và đặt giá trị trong lĩnh vực ẩn để id của khách hàng khi bạn thực hiện một lựa chọn):

<%= simple_form_for @booking do |f| %> 
    <%= f.hidden_field :customer_id, id: "customer_id" %> 
    <%= f.input :customer, required: true, 
     input_html: { value: @booking.customer_name } %> 
<% end %> 

Trả lời

15

Tôi cuối cùng đã tìm hiểu về khối append trong simple_form (buried in a pull request, không được ghi lại ở bất kỳ nơi nào khác mà tôi có thể tìm thấy). Về cơ bản, bạn có thể sử dụng để thêm bất kỳ đánh dấu nào bạn muốn vào số f.input của mình. Tôi đã làm những điều sau đây, mà là khá hacky, nhưng nó là những gì tôi cần nó để làm:

<%= f.input :customer, required: true, 
    wrapper_html: { class: ("error" if @booking.errors[:customer_id].any?) } do %> 
    <%= f.input_field :customer, value: @booking.customer_name %> 
    <%= f.error :customer_id %> 
<% end %> 

Trước tiên, tôi phải có điều kiện bổ sung "lỗi" lớp học để các wrapper nếu có bất kỳ sai sót trên có liên quan , sau đó tôi đã sử dụng khối append để hiển thị trường nhập, sau đó là lỗi cho trường có liên quan từ mô hình. Mong rằng điều này sẽ giúp ai đó trong tương lai!

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