这是一个非常简单的问题,但出于某种原因我无法找到解决方案。
我的控制器是:
def index
@events = Event.all
#I want something here for a single event
distance = Time.now.to_date.distance_to(@event.event_date)
@days = distance[:days]
@months = distance[:months]
@years = distance[:years]
end
然后在视图中:
<table>
<tbody>
<% @events.each do |event| %>
<tr>
<td><%= event.title %></td>
<td><%= event.event_date %></td>
<td> Just <%= @days %> days, <%= @months %> months and <%= @years %> years for the event </td>
</tr>
<% end %>
</tbody>
</table>
当然它不起作用,因为没有@event。 我该怎么办?
提前致谢!
答案 0 :(得分:1)
您要做的是将该功能添加到单个记录中
我会在distance
类
Event
作为方法
所以
class Event < ActiveRecord::Base
#... your model code here
def distance
Time.now.to_date.distance_to(self.event_date)
end
end
控制器
def index
@events = Event.all
end
并在视图中
<td> Just <%= event.distance[:days] %> days, <%= event.distance[:months] %> months and <%= event.distance[:years] %> years for the event </td>
你可以为你的模型添加更多方法,使它更像event.distance_days
或其他东西,但我会把它作为读者的练习。
答案 1 :(得分:0)
“我想在这里举办一些活动。”
查找单个记录的默认方式是id:
@event = Event.find(params[:id])
但对我来说,它应该是这样的,因为我没有在视图中看到@event
。