在我的应用程序中,我有一个 User 模型,它定义了一个返回 Activity 对象列表的历史方法,显示用户执行的最后 N 个操作。UserController#history 方法将其与视图关联。
代码如下所示:
class UserController < ApplicationController
def history
user = User.find(params[:id])
@history = user.history(20)
end
end
class User < ActiveRecord::Base
has_many :activities
def history(limit)
...
end
end
当然,我还将这一行添加到我的 routes.rb 文件中:
match '/user/:id/:action', :controller => 'user'
所以现在当我转到 localhost:3000/user/8/history 时,我看到了用户 8 的历史记录。一切正常。
作为一个 Rails NOOB,我想知道是否有一些针对这种情况的罐装解决方案可以简化代码。我的意思是,如果 /user/8 是访问用户 8 页面的 RESTful 方式,是否可以告诉 Rails /user/8/history 应该显示通过调用用户 8 的 history() 返回的数据?