2016-05-17 89 views
0

所以我要创建视图: 1.普通用户,看到它的工作程序状态:Rails的未定义的方法“job_app”

def index 
    @users ||= current_user 
    @job_apps = @users.job_app 

end 

它完美的视图。 2.故障(job_app方法未定义):创建视图管理员,使他们能够看到所有考生:

def empl 
    @users = User.all.where(:user_type => 'candidate') 
    @job_apps = @users.job_app.all 
end 

注:若没有@job_apps我可以看到所有的用户也是如此。

+1

你说试图创建管理员的观点时,你有 “麻烦”。究竟是那个麻烦呢?除非你告诉我们什么是错的,否则我们不能给你答案。发布任何错误消息,控制台输出以及预期与实际行为。 – MarsAtomic

+0

@MarsAtomic编辑 – andrey

回答

0

我要稍作这里一个受过教育的猜测:job_app的确是User类的方法,但你正在处理您的控制器的empl方法不是User实例什么,而是, ActiveRecord::Relation的实例,它或多或少是User对象的数组。 User.job_app因为job_appUser的成员,但不是ActiveRecord::Relation

为了实现你想要的,你必须在与你的方法empl相关的视图中迭代该数组的元素。

控制器代码:

def empl 
    @users = User.all.where(:user_type => 'candidate') 
end 

视图代码:

<% @users.each do | user | %> 
    <%= user.job_app %> 
<% end %> 
+0

这是一个铁杆猜测就在那里:) – Raffael

+0

@MarsAtomic这个工程,但如果我想使接受或拒绝方法的东西?我必须重新处理它,但我不知道如何写link_to来更新job_apps表 – andrey

+0

@andrey在单独的问题中写下你想要的内容,你会得到一个答案。尝试将堆栈溢出的问题尽可能原子化,以便当有人搜索某些东西时,他们可以找到问题的确切答案,不多也不少。 – MarsAtomic