我在模型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>
我试过但不工作,有什么建议吗?
答案 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