2012-03-12 16 views
12

Tôi đang chuyển ứng dụng của mình sang sử dụng simple_form nhưng tôi hơi bối rối về cách hiển thị kiểu nhập văn bản. Ví dụ: khi tôi thực hiện các thao tác sau:nhập văn bản simple_form

f.input :foobar # <textarea name = "model[foobar]"></textarea> 

Tôi nhận được văn bản thay vì nhập bằng w/loại văn bản. Làm thế nào tôi có thể buộc simple_form để đầu ra một đầu vào văn bản?

Trả lời

44

nó đang xảy ra bởi vì lĩnh vực này là một cột text trong cơ sở dữ liệu, chứ không phải là string/varchar/etc, bạn có thể ghi đè mặc định như vậy:.

f.input :foobar, :as => :string 

Bạn có thể đọc về tất cả các ánh xạ trong simple_form readme trong "Ánh xạ/Đầu vào khả dụng".

+1

Cảm ơn thông tin. Tôi ước rằng đó là trong Readme. Readme thậm chí không đề cập đến từ "textarea" hoặc tùy chọn "as:: string". –

+0

Đã gửi yêu cầu kéo: https://github.com/plataformatec/simple_form/pull/855 –

9

tôi sẽ cập nhật câu trả lời cho câu hỏi này, bởi vì các phương pháp mới để làm điều đó với simple_form là như thế này:

f.input :foobar, as: :text 

Như bạn thấy, sử dụng "như:: nhắn tin" sẽ sử dụng một text_area lĩnh vực, nhưng nếu bạn muốn thay đổi số lượng hàng và cols bạn nên làm điều đó như thế này:

f.input :foobar, as: :text, input_html: {rows: 10, cols: 10} 

đây bạn có thể xem tài liệu cho các viên ngọc:

https://github.com/plataformatec/simple_form

+1

Bạn có thể chuyển từ hashrockets sang gán ký hiệu và có 'f.input: foobar, as:: text, input_html: {rows: 10 , cols: 10} ' – Epigene

+0

được cập nhật, bây giờ với cú pháp băm mới; D –

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