2012-07-09 37 views
5

Tôi đang sử dụng gem đơn giản.Thêm dữ liệu bổ sung vào đầu vào simple_form

Tôi render một đầu vào dựa trên một bộ sưu tập (danh sách tất cả của tôi actiontypes)

<%= f.association :actiontype, collection: Actiontype.all, input_html: { data: {'impacts-pnl' => ??}} %> 

Tôi muốn để có thể thêm một dữ liệu thuộc tính đến đầu vào để lưu trữ dữ liệu thêm.

Trong trường hợp này, tôi muốn lưu trữ thuộc tính impacts_pnl của actiontype. Vấn đề duy nhất là tôi không biết làm thế nào để tham khảo các hiện actiontype

collection.impacts_pnl không hoạt động (rõ ràng)

actiontype.impacts_pnl không.

làm cách nào tôi có thể chuyển bit dữ liệu bổ sung này vào đầu vào của mình?

Trả lời

14

Nếu bạn muốn thêm các thuộc tính này vào các phần tử tùy chọn của vùng chọn, bạn nên thay đổi tập hợp bằng cách sử dụng ví dụ hàm .map(). Ngoài ra, sử dụng helper đầu vào với khối để làm điều này, nếu không nó không hoạt động;

= f.input :actiontype do 
    = f.select :actiontype, Actiontype.all.map{|a| [a.name, a.id, {"data-impacts-pnl" => p.impacts_pnl}]} 

Để biết thêm thông tin về vấn đề này, xem https://github.com/plataformatec/simple_form/issues/188

+0

cảm ơn, tôi đã bỏ lỡ một phần, nơi bạn cần phải xác định 'f.select' như là một phần của một khối! – Pierre

+0

Và làm thế nào để tôi có một lớp học với các thành phần '