2012-09-03 33 views
32

Tôi muốn vượt qua các đối tượng form_for đến một phần:Rails qua form_for đối tượng để một phần

<%= form_for @price do |f| %> 
    ... 
    <%= render :partial => "price_page", :object => @price, :as => :f %> 
    ... 
<% end %> 

Khi tôi gọi:

f.radio_button 

mang lỗi:

undefined method `radio_button' for #<Price:0x3cb1ed0> 

Làm thế nào tôi có thể sử dụng f như tôi thường ở phần này?

Trả lời

49

Hãy thử hình thức qua đối tượng như địa phương <%= render :partial => "price_page", :locals=>{:f=>f} %>

+1

làm việc như một điều trị. Tốt công việc – Harry

+1

wow cảm ơn nó đã làm việc cho tôi .... + 1 từ tương lai =) –

+0

Chỉ có vấn đề tôi đã có với điều này là bạn không thể bao gồm 'nested_form' bên trong một phần. Trả về lỗi. – bcackerman

7

Bạn có thể vượt qua đối tượng hình thức xây dựng như là một biến địa phương như dưới đây,

<%= form_for @price do |f| %> 
    <%= render :partial => "price_page", :locals => { :f => f } %> 
<% end %> 

trong tập tin cục bộ của bạn, bạn sẽ nhận được xây dựng dưới hình thức như là một biến địa phương "f", bạn có thể sử dụng như bên dưới,

<% f.radio_button, {} %> 
+1

REallyyy ????? bạn đã làm chính xác như anh chàng trước đây –

+0

Yea nhưng chỉ một vài phút sau! –

+0

Có, SO i tàn bạo về việc đổ xô trở thành người đầu tiên trả lời. – count0

5

Tôi chạy qua câu hỏi này để tìm hiểu cách tạo biểu mẫu r thành một phần không có thẻ biểu mẫu bổ sung. Đó là trường hợp sử dụng chính mà tôi có thể nghĩ đến cho câu hỏi này, vì vậy tôi đang thêm câu trả lời này cho khách truy cập trong tương lai.

Để giải quyết vấn đề của tôi, tôi có form_for trong bố cục của mình và tôi chỉ hiển thị một phần cho mô hình của mình. Trong phần tôi, tôi sử dụng fields_for.

vẻ (cái gì đó) như thế này:

= form_for @price do |f| 
    ... 
    = render partial: "price_page", object: @price, as: 'price %> 
    ... 

Sau đó, một phần tôi có này:

= fields_for price do |f| 
    ... 
Các vấn đề liên quan