Rails使用表单对象渲染部分
我想从下拉列表中选择一个颜色后呈现部分’colordata’,因为它涉及Ajax。 我无法在主页面上观察到任何变化。 甚至forms在colordata partial中是不确定的。
这是我的模型Order模式
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 += ""
这是部分_colordata.html.erb
错误是
- 表单未在_colordata.html.erb中定义
- 部分不会附加到课程批次中。
提前致谢。
要使用jquery附加partial,可以使用append
方法。 应该在渲染内定义locals
。 所以你可以这样解决:
$(".lot").append("<%= escape_javascript(render(partial: 'colordata', locals: { form: form })) %>")