Rails访问父模型ID

时间:2013-07-14 01:06:45

标签: ruby-on-rails ruby ruby-on-rails-3

我有以下型号: - 用户 - 清单 - 审核

用户可以拥有多个商家信息,用户可以拥有多条评论。

它们嵌套如下:

  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。

1 个答案:

答案 0 :(得分: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