[英]Rails Ajax partials passing form builder
我將使用下拉列表的值用ajax加載表單的一部分,如下所示:
..form_partial.js.erb
$('#custom_ajax').remove();
<% if @house == "Rent" %>
$('#rest_of_form').after('<div id="custom_ajax"><%= escape_javascript render('/houses/forms/rent') %></div>');
<% else %>
$('#rest_of_form').after('<div id="custom_ajax"><%= escape_javascript render('/houses/forms/buy') %></div>');
<% end %>
這里叫...
.._form.html.erb
<%= form_for @house, :validate => true, :html => { :class => 'form-horizontal',:multipart => true } do |f| %>
..........................................
..........................................
<div id = "rest_of_form"></div>
<div id="custom_ajax">
..........................................
..........................................
</div>
..........................................
..........................................
<script type="text/javascript">
$(document).ready(function() {
$('#house_listing_type').change(function() {
$.ajax({ url: '/houses/' + this.value + '/form_partial' });
});
});
</script>
然后,我可以用它來加載文件,它的工作非常好,唯一的問題是我需要將表單生成器傳遞給局部文件,因為我的_buy.html.erb看起來像這樣
<div class="control-group">
<%= label :property_classification, "Property Classification", :class => "control-label" %>
<div class="controls">
<div class="input-prepend">
<span class="add-on"><i class="icon-info-sign"></i></span>
<%= select :property_classification, ["Residential","Commercial"], {},{:class=>"input-medium"} %>
</div>
</div>
</div>
顯然需要表單生成器,我嘗試將其作為本地等傳遞,但無濟於事。 我也嘗試刪除所有的“ f”。 這行得通,但是表單顯示不正確,並且沒有任何高級表單構建器元素起作用。
我如何才能將表單生成器添加到局部視圖?
謝謝
http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html
當不依賴form_for
,要使用的表單構建器元素分別是label_tag
和select_tag
。
在這種情況下,您可能會發現同時使用form_tag
和fields_for
比使用form_for
更容易。
我在這里提出的解決方案回答了相同的問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.