Rails渲染带有表单对象的部分对象 [英] Rails Rendering partial with form object

查看:45
本文介绍了Rails渲染带有表单对象的部分对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于涉及Ajax,我想从下拉列表中选择:color后渲染部分'colordata'.我看不到主页的任何变化.偶数形式在colordata部分中未定义.

I want to render a partial 'colordata' after selecting a :color from the drop down list as it involves Ajax. I am not able to observe any change in main page. Even form is undefined in colordata partial.

这是我的模型Order模式

Here's my schema of model 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

Here's the Colordata.js.erb

$(".lot").innerHTML += "<%= escape_javascript(render(partial: 'colordata'),locals: {form: form) %>"

这是部分_colordata.html.erb

Here's the partial _colordata.html.erb

<%= form.label :lotnumber %>
<%= form.collection_select(:lotnumber, @lotdetail, @lotdetail.lotnumber,@lotdetail.lotnumber,prompt: "Select the Yarn")%>

错误是

  1. 表单未在_colordata.html.erb中定义
  2. 部分不追加到班级批次中.

先谢谢了.

推荐答案

要将部分对象附加到jquery,可以改用 append 方法. locals 应该在渲染器内部定义.因此,您可以像这样进行修复:

To append your partial with jquery, you can use the append method instead. locals should be define inside the render. So you can fix like that :

$(".lot").append("<%= escape_javascript(render(partial: 'colordata', locals: { form: form })) %>")

这篇关于Rails渲染带有表单对象的部分对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆