我有一个表单,其中基于用户在下拉列表中选择的值,表单的其余部分通过部分显示。
模型:
Book has many supplierdetails
Supplierdetails belongs to Book
表格代码
<% fields_for @book do |f| %>
Catalogue Number: <%= f.text_field :BK_CAT_NUM %>
<% f.fields_for :supplierdetails do |builder| %>
Supplier Type:
<%= builder.select(:SUP_TYPE,
[['A', 'A'],
['B', 'B'],
],{ :prompt => "Please select"}
) %>
<%= observe_field("book_supplierdetails_attributes_0_SUP_TYPE",
:url => { :controller => 'books', :action => :display_ab_details },
:with => "'id='+value") %>
<div id="div1"> </div>
<% end %>
<% end %>
控制器方法
def display_ab_details
supplier_type = params[:id]
if supplier_type == "A"
render :update do |page|
page['div1'].replace_html :partial => 'books/test_partial'
end
end
end
书籍/_test_partial.html.erb
Production Method: </label> <%= builder.select(:SUP_PROD_METHOD, [
['prod_1', 'prod_1'],
['prod_2', 'prod_2'],
],{ :prompt => "Please select"}
) %>
部分没有显示,我相信这是因为表单对象。
如果“books/_test_partial.html.erb”包含纯文本,则会正确显示。
通过 rjs 渲染部分时如何处理表单对象?