0

我有以下模型: - 用户 - 列表 - 评论

用户可以有很多列表,用户可以有很多评论。

它们是这样嵌套的:

  resources :users do
      resource :listings
      resource :reviews
  end

我正在尝试创建一个创建新评论的表单。我的评论页面位于:

http://localhost:3000/users/1/reviews/new

我想为用户 #1 创建一个新评论。

我需要做的是将 :id (在这种情况下为#1)放入我的控制器中,但我不确定如何。目前我的 reviews_controller.rb 是空白的,如下所示:

class ReviewsController < ApplicationController

  def new
  end

end

我不确定新函数中需要包含什么来获取当前页面的 :id 。

4

1 回答 1

1

你的意思是获取当前用户?你可以这样做来获取用户

user_id = params[:user_id] # this will be 1 in this case
# then you can get the user
user = User.find_by_id(user_id)

如果你总是想获得用户,你可以使用before_action(or before_filter in Rails3),像这样:

class ReviewsController < ApplicationController
  before_action :prepare_user

  def new
    # now you can use @user
  end

  private
  def prepare_user
    @user = User.find_by_id(params[:user_id])
  end

end
于 2013-07-14T01:16:15.830 回答