如何在视图中使用类方法输出?

时间:2011-05-31 14:45:14

标签: ruby-on-rails

我在模型abc.rb中有一个类方法find_all_media。模型xyz和abc有关系,

abc :has_many xyzs and

xyz :belongs_to abc

def self.find_all_media(media_name)

  if self.media_name == self.xyz.media_name
    return media_name
 end
end 

我想在

中调用此方法
 ### xyz/index view file
<% @abc.xyzs.each do |xyz| %>
<tr>
  <td><%=h xyz.media_name %></td>
  <td><%=h xyz.type %></td>
  <td>I want to call method find all_media here ?? </td>

我试过但不工作,有什么建议吗?

2 个答案:

答案 0 :(得分:0)

从您的视图代码和您维护的状态看起来,您需要一个实例方法而不是类方法。

def find_all_media(media_name)
   return media_name if self.media_name == self.xyz.media_name
end

答案 1 :(得分:0)

我可以在类方法中看到一个问题,您已将其编写为类方法并尝试访问其中的实例方法,即media_name和xyz.media_name。所以使它成为rc建议的实例方法。

<% @abc.xyzs.each do |xyz| %>
<tr>
  <td><%=h xyz.media_name %></td>
  <td><%=h xyz.type %></td>
  <td><% @abc.find_all_media(xyz.media_name) %></td> # calling find_all_media