我正在使用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
从代码中拿出来,其他的都可以工作
发现了我的错误,我在应用程序助手中调用了部分,而没有传递适当的局部变量。
当我可以将部分复制到另一个名称并使用变量调用时,我发现了这个问题。
尝试:
=render 'current_position_fields', :f => builder, :foo => 'hi'