私のアプリには、Activity オブジェクトのリストを返す履歴メソッドを定義する User モデルがあり、ユーザーが実行した最後の 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 な方法である場合、/user/8/history がユーザー 8 で history() を呼び出すことによって返されるデータを表示する必要があることを Rails に伝えることは可能ですか?