rails link_to控制器方法undefined

时间:2016-05-18 03:06:11

标签: ruby-on-rails

我想创建更新值状态的link_to(接受-1,拒绝 - 2导致0正在进行中)所以我有一个想法在job_app中调用方法

def accept 
        @job_apps = job_apps.find(params[:id])
        @job_apps.update_attribute(:status,1)
end
def refuse
        @job_apps = job_apps.find(params[:id])
        @job_apps.update_attribute(:status,2)
end

路线:

get 'accept' => 'job_apps#accept'
post 'accept' => 'job_apps#accept'

它声称job_apps未定义的错误(treid job_app也是)。 尝试:

def accept 
        @job_apps = @user.job_app
        @job_apps.update_attribute(:status,1)
    end

我在同一个视图中调用job_app时遇到了类似的问题(查看job_app.status,因为它是与user_id上的用户连接的表)但是在堆栈溢出时有人帮我这个(查看文件):

<th><%= user.job_app.status %></th>

我完全不知道如何使用它来link_to(如果有可能的话)

2 个答案:

答案 0 :(得分:0)

Please see this topic.

  

您似乎在状态列上使用枚举。除非您跳过对象实例化(例如,使用update_all或update_columns),否则不能将原始值(枚举值的整数部分)与枚举一起使用。如果实例化对象,则必须使用枚举值(值是:接受,而原始值是1)。在接受中,您需要更新对象

def accept 
    @job_apps = job_apps.find(params[:id])
    @job_apps.update_attribute(status: :accept)
end

答案 1 :(得分:0)

解决方案是:

    @job_apps = JobApp.find(params[:id])

Full post here