2017-07-07 65 views
0

這可能真的很愚蠢,但是,我不明白爲什麼會發生這種情況。 我有這個方法。未定義的方法'許可'爲:像:符號

def vote_params 
    params.fetch(:vote, :like, :hate, :movie_id, {}).permit(:like, :hate, :movie_id) 
end 

然後我調用這樣的方法調用它(默認的腳手架創建方法)。

<td><%= link_to Vote.where(movie_id: movie.id, like: true).count, upvote_path(:like => true, :hate => false, :movie_id => movie.id) %></td> 

我的路線是

get 'vote/movies' => 'votes#create', as: :upvote 

我缺少什麼?

+0

我們需要看到您的控制檯日誌,它顯示瞭如何爲您的請求參數的部分。我現在可以告訴我的是,我發現它真的很奇怪'params.fetch(:vote,:like,:hate,:movie_id,{})'通常我們只抓取一個或兩個符號,已經有4個了,完全一樣 –

+0

嘗試'params.permit(:like,:hate,:movie_id)' –

回答

2
params.fetch(:vote, :like, :hate, :movie_id, {}) 

該部分是不好,如果你需要獲得分離範圍的參數,你需要做這樣的事情。

def vote_params 
    params.require('vote').permit(:parameter1, :parameter2) 
end 

def like_params 
    params.require('like').permit(:parameter1, :parameter2) 
end 

def hate_params 
    params.require('hate').permit(:parameter1, :parameter2) 
end 

但我相信,以下是你需要什麼

def vote_params 
    params.permit(:like, :hate, :movie_id) 
end 
+0

確實,我的錯誤是我取得了我允許的相同參數,所以這造成了衝突。 –

+0

已修復!非常感謝 –

+0

@ Dinos_12345歡迎! –