正如标题所述,我正在尝试用AJAX请求加载表单分部;表单中的一个字段需要控制器中的一个变量,以便它可以创建select下拉菜单。如果我在视图中直接呈现部分,它会很好地访问变量,但是当我分隔该部分并试图通过AJAX请求加载它时,它不知道如何找到该变量。
我试过遵循答案found here (将它作为局部变量给它),但它仍然不起作用。
@headers是未加载的变量。
部分
= simple_form_for(Constraint.new, html: {:multipart => true, autocomplete: "off", :class=> "form-horizontal" }, remote: true, :authenticity_token => true) do |f|
  div.profile-details
    br
    = f.select :header, @headers.each{|header|} , input_html:{:class => "user-update"}, label: "Header", :prompt   => "Select a Header"
    br
    = f.button :submit, "Save Constraint"加载部分.js文件的
$(".newConditionContainer").append('<%= escape_javascript(render 'projects/rulesConstraintsInput')%>');更新
最后,在调用js请求的控制器方法中定义了变量。我先前假设变量是可访问的,但它只是在分部之外的方法中定义的。
发布于 2014-09-15 15:15:51
部分需要以下划线开头,因此将其命名为_partial_name.html.erb,然后可以使用以下渲染引用部分,并传递任何您喜欢的局部变量
<%= render partial: "partial_name", locals: {headers: @headers} %>报头现在可以作为局部变量在部分中使用。只需将@头更改为标头
干杯
https://stackoverflow.com/questions/25851135
复制相似问题