我有一个User模型和一个Job_Category模型,Job_Category模型
belongs_to :user
用户模型
has_many :job_categories, :dependent => :destroy
我有一个仪表板控制器,我正在尝试显示特定登录用户的所有Job_Categories。
class DashboardController < ApplicationController
before_filter :authenticate_user!
def index
@user = User.find(params[:id])
@job_categories = @user.job_categories
#@job_categories = JobCategory.all
#respond_to do |format|
# format.html # index.html.erb
# format.xml { render :xml => @job_categories }
# end
end
然而,当我试图显示这个时,我收到错误'找不到没有ID的用户'。我在日志中看到了这一点:
由DashboardController #index处理为HTML 用户负载(0.3ms)SELECT“users”。* FROM“users”WHERE(“users”。“id”= 2)LIMIT 1 在22ms完成
ActiveRecord :: RecordNotFound(找不到没有ID的用户): app / controllers / dashboard_controller.rb:9:在`index'
答案 0 :(得分:1)
首先,你不能试图在控制台中找到params,因为没有这样的东西。
在控制台中尝试:
User.find(2)
(.. find方法看起来值的默认列是主键,我假设它是正常的id)
然后另一件事,如果你已经在before_filter中验证了用户,你可能已经有了@current_user或者其他东西,你是否正在使用某些认证插件,如设计或其他东西?因此,无需将当前用户ID传递给仪表板控制器。应用程序控制器已经知道该用户是谁,并且您的仪表板控制器是它的子类。
确保您的job_category表也有user_id列。