【发布时间】:2013-10-01 15:17:17
【问题描述】:
在我的 Rails 4 应用程序中,我开始将我的逻辑转移到模型中(根据 Fat Model 原则)。但是,我有点不确定如何最好地解决基础问题。
我的应用显示已登录用户的预订。在我的 BookingsController 中,我有一个显示已确认预订的操作:
def confirmed
@bookings = Booking.where(:status => 3, :accommodation_id => current_user.accommodation.id).order('updated_at DESC')
end
但是,我尝试将逻辑移至控制器,以便 BookingsController 现在看起来像这样:
def confirmed
@bookings = Booking.confirmed_bookings
end
Booking 模型如下所示:
def confirmed_bookings
bookings = where(:status => 3, :accommodation_id => current_user.accommodation.id).order('updated_at DESC')
end
我收到 undefined method `confirmed_bookings' 错误,不确定自己做错了什么。对此问题的修复和一些简单的“入门”建议将不胜感激。
【问题讨论】:
-
Slicedpan 可以回答您的问题,但也没有理由在您的方法中使用局部变量
bookings。 -
很高兴知道 - 所以我假设结果只是在代码完成时自动返回到控制器 - 不需要显式的 return 语句?
-
ruby 方法总是返回最后计算的表达式的值 - 在这种情况下,一个
ActiveRecord::Relation对象
标签: ruby-on-rails model-view-controller ruby-on-rails-4