2016-05-18 53 views
0

我想創建的link_to更新一個值狀態(接受 - 1,拒絕 - 2起因0正在進行中),所以我靈機一動,撥打job_app軌的link_to控制器方法未定義

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(如果可能的話OFC)

回答

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 
+0

仍然無法正常工作 – andrey

+0

未定義的局部變量或方法'job_apps' – andrey

+0

如何關於添加正常的href鏈接到update_attribute?它會起作用嗎? – andrey