【发布时间】:2013-05-19 06:35:46
【问题描述】:
我正在使用 Rails 3.0.20 应用程序,我试图通过一个局部变量传递一个局部变量,它显示“未定义的局部变量”我已经查看了有关此问题的其他帖子,并且无法不要修复它。
这是我渲染部分的调用
= f.fields_for :current_positions do |builder|
= render :partial => 'current_position_fields', :locals => {:f => builder, :foo => 'hi'}
这是我的部分
%tr.pos_start
%td
= foo
= f.hidden_field :id, class: "pos_id"
= f.label :name, "Position Name"
%td= f.text_field :name
%tr.pos_loc
%td= f.label :location, "Position Location"
%td= f.text_field :location
%tr.pos_end
%td= f.label :year, "Position Year"
%td= f.text_field :year
%td.fields
= link_to_remove_fields "DEL", f
错误信息是
undefined local variable or method `foo' for #<#<Class:0x00000008d4a050>:0x00000008d3c590>
如果我将 = foo 从代码中取出,其他一切都可以正常工作。
【问题讨论】:
-
您的确切用例是什么,而不是
foo指向一个字符串?它当前指向一个字符串,所以可能是="#{foo}"? -
我正在尝试为 hidden_field :id 创建一个唯一引用,以便我可以通过下面的一些 jquery 访问它,以克服用户在浏览器中点击后退按钮的错误。因此,我最终将传递一个计数器/索引,而不是“foo”,我将在循环中更新它,我正在渲染部分并将其附加到 hidden_field :id 的类名和下面的脚本调用中。目前我想知道为什么我不能将一个简单的字符串传递给一个部分。
-
render的语法完全正确,afaik。刚刚在我当地的开发人员上试了一下,工作得很好。
标签: ruby-on-rails ruby-on-rails-3 haml partial-views