我正在尝试从js.erb文件中呈现一个部分,该文件同时传递了一个集合和一个局部变量。一切正常,但我无法访问视图中的局部变量。我尝试过以下方法:
<%= escape_javascript(render(partial: 'tasks/task', collection: @task_group.tasks_belonging_to, as: :task, locals: {testvble: "bob"})) %>
<%= escape_javascript(render(partial: 'tasks/task', collection: @task_group.tasks_belonging_to, locals: {testvble: "bob"})) %>
<%= escape_javascript(render(partial: @task_group.tasks_belonging_to, locals: {testvble: "bob"})) %>
<%= escape_javascript(render(@task_group.tasks_belonging_to, testvble: "bob")) %>
上述每个工作都有效,直到我尝试访问视图中的局部变量。我收到错误:
undefined local variable or method `testvble'
为了完整起见,上面的每一个都在js.erb文件中的以下语句中(位于xxxx位置):
$("#task-group-<%=@task_group.id%>").append("xxxx").hide().show('slow')
这是造成问题的部分代码:
<p>should be bob:<%= testvble %></p>
答案 0 :(得分:0)
根据J Plato的建议,底层语法实际上是正确的。我的问题是,如果要显示子任务,则部分递归调用自身。渲染子任务时,没有传递局部变量。