[英]Rails Rendering partial with form object
我想从下拉列表中选择:color后呈现部分'colordata',因为它涉及到Ajax。 我看不到主页的任何变化。 偶数形式在colordata部分中未定义。
这是我的模型订购模式
create_table "orders", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
t.string "design"
t.integer "quantity"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "color"
t.string "lotnumber"
t.float "consumption", limit: 24
t.string "number"
end
这是ajax电话
$("select[name='order[color]']").change(function(){
$.ajax({
url: "colordata",
type: "post",
data:{
"color": $(this).val()
},
dataType: JSON,
success: function(data){
}
});
});
这是控制器。
def colordata
request.POST.each do |key, value|
@color = value
end
@lotdetail= Master::Yarn.where('color like?', @color)
respond_to do |format|
format.js
end
end
这是Colordata.js.erb
$(".lot").innerHTML += "<%= escape_javascript(render(partial: 'colordata'),locals: {form: form) %>"
这是部分_colordata.html.erb
<%= form.label :lotnumber %>
<%= form.collection_select(:lotnumber, @lotdetail, @lotdetail.lotnumber,@lotdetail.lotnumber,prompt: "Select the Yarn")%>
错误是
提前致谢。
要用jquery追加部分,可以改用append
方法。 locals
应在渲染器内定义。 因此,您可以像这样进行修复:
$(".lot").append("<%= escape_javascript(render(partial: 'colordata', locals: { form: form })) %>")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.