首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过AJAX请求调用的Rails表单部分不加载控制器变量。

通过AJAX请求调用的Rails表单部分不加载控制器变量。
EN

Stack Overflow用户
提问于 2014-09-15 15:05:23
回答 1查看 417关注 0票数 0

正如标题所述,我正在尝试用AJAX请求加载表单分部;表单中的一个字段需要控制器中的一个变量,以便它可以创建select下拉菜单。如果我在视图中直接呈现部分,它会很好地访问变量,但是当我分隔该部分并试图通过AJAX请求加载它时,它不知道如何找到该变量。

我试过遵循答案found here (将它作为局部变量给它),但它仍然不起作用。

@headers是未加载的变量。

部分

代码语言:javascript
运行
复制
= 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文件的

代码语言:javascript
运行
复制
$(".newConditionContainer").append('<%= escape_javascript(render 'projects/rulesConstraintsInput')%>');

更新

最后,在调用js请求的控制器方法中定义了变量。我先前假设变量是可访问的,但它只是在分部之外的方法中定义的。

EN

回答 1

Stack Overflow用户

发布于 2014-09-15 15:15:51

部分需要以下划线开头,因此将其命名为_partial_name.html.erb,然后可以使用以下渲染引用部分,并传递任何您喜欢的局部变量

代码语言:javascript
运行
复制
<%= render partial: "partial_name", locals: {headers: @headers} %>

报头现在可以作为局部变量在部分中使用。只需将@头更改为标头

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25851135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档