controller - 在分页示例中,控制器 Rails 2.3.8如何将'id'传递给方法?

  显示原文与译文双语对照的内容

我正在通过"通过示例学习 Rails" Hartl(11.33). 进行教程,相关代码是:

类 PagesController <触发器

def主页


@title ="Home"


if signed_in?


 @micropost = Micropost.new


 @feed_items = current_user.feed.paginate(:page => params[:page])


end



结尾

类用户 <ActiveRecord::Base

def提要


Micropost.all(:conditions => ["user_id =?", id])



结尾

模块 SessionsHelper

def sign_in ( 用户)


user.remember_me!


cookies[:remember_token] = { :value => user.remember_token,


 :expires => 20.years.from_now.utc }


self.current_user= user



结尾

def current_user= ( 用户)


@current_user = user



结尾

def current_user


@current_user ||= user_from_remember_token



结尾

然后 @feed_items 被呈现为"will_paginate"的集合,一切都正常。

问题是我无法理解如何将current_user传递到PagesController行 IE 中的"提要"方法

"@feed_items = current_user.feed. 分页(: 页=> 参数 [:page] )"

任何帮助都将得到极大的赞赏

艾伦

时间: 原作者:

current_user 永远不会对 feed 方法进行"经过"处理 feed 方法在 current_user 对象上是调用 。 查看用户模型:


def feed


 Micropost.all(:conditions => ["user_id =?", id])


end



这是在调用 current_user.feed 时执行的实例方法。 :conditions 散列中的id 引用了用户对象实例的id,在本例中是 current_user

原作者:

很可能"current_user"是在控制器的paret类中定义的: ApplicationController在控制器目录中搜索" application_controller.rb"。

原作者:
...