在html视图中列出项目的麻烦 - 全局变量

时间:2012-01-30 17:39:45

标签: ruby-on-rails views

我是RoR的新手

我有一个奇怪的问题 - 我试图按名称呈现“Product Scale”对象列表

<ul>
<%= @product_scales.each do |p| %>
<li><%= p.scale_name%></li>
<% end %>
</ul>

列表打印好了,但由于某种原因,类实例名称也是如此, 所以它看起来像这样:

规模:

  • 本地
  • 区域
  • #&LT; ProductScale:0x12ad625b0&gt;#&lt; ProductScale:0x12ad60418&GT;

在我的控制器中它看起来像这样:

@product = Product.find(params[:id])
@product_scales =ProductScale.findByProductId(params[:id])

我也试过

@product_scales = ProductScale.findByProductId(params[:id]).map{|p| p.scale_name}

并在html.erb文件中:

<li><%= p %></li>

这给出了以下内容:

  • 本地
  • 区域
  • localregional

这里看起来正在调用to_s对象的@product_scales方法,并在页面上显示结果 - localregional。

我无法弄清楚为什么会这样。

1 个答案:

答案 0 :(得分:5)

假设上面发布的代码不是拼写错误,你有:

<%= @product_scales.each do |p| %>

&lt;%=将导致它输出,您需要使用:

<% @product_scales.each do |p| %>