'方法'的未定义方法`arel_table':模块

时间:2015-03-16 17:31:51

标签: ruby-on-rails

在我的应用程序中,我有两个模型:寿司(表1)和type_sushi(表2),其间有外键。 Everthing正如我预期的那样运行,但是当我显示表1的数据时,它会向我显示寿司类型,如你的ID(1,2,3),但我想像这样显示sushis类型的名称:< / p>

我想表现出类似于&#34; Tipo寿司&#34;喜欢类型的名称(yaksoba,例如生鱼片)而不是id(例如1,4)。

你们能帮助我吗?

<% @sushis.each do |sushi| %>
    <%= sushi.name %>
    <%= sushi.price %>
    <%= sushi.tipo_sushi_id %> -> (Here is I need to change something I guess)
    <%= link_to 'Show', sushi %>
    <%= link_to 'Edit', edit_sushi_path(sushi) %>
    <%= link_to 'Destroy', sushi, method: :delete, dat`enter code here`a: { confirm: 'Are you sure?' } %>
<% end %>
  

更新:我已将&#34; sushi.tipo_sushi_id&#34; 更新为&#34; sushi.tipo_sushi.name&#34; 但我和#39;有这样的信息:未定义的方法`arel_table&#39;对于TipoSushi:模块

2 个答案:

答案 0 :(得分:3)

我通过在model / sushi.rb中添加命令belongs_to :tipo_sushi, class_name: SushiTipo来解决问题。

谢谢你们!

答案 1 :(得分:0)

显式编写您的代码以显示ID。如果你想显示名字,这......

<%= sushi.tipo_sushi_id %>

显然不会这样做。

相反,您需要加载相关记录并显示其名称:

<%= sushi.tipo_sushi.name %>

这假设您已正确设置关联。