2013-10-04 59 views
2

我需要登錄非設計控制器。我發現從色器件維基this聯繫,但我得到的錯誤:設計:從控制器登錄

wrong number of arguments (2 for 0) 

我做了完全一樣的鏈接。什麼地方出了錯?由於

我的代碼:

sign_in(:site, Site.find(params["si"])) 
+0

會是怎樣簽訂的好處在設備控制器之外的用戶中? – dennis

+0

將此行放在該調用的上方,找出此方法來自哪裏:'p method(:sign_in).source_location'。再次運行測試,現在您會看到該方法正在定義的位置。 –

+0

@RyanBigg我把那個電話放在那個上面,我應該在哪裏看到結果?我在控制檯中看不到任何東西。再次感謝 – ishwr

回答

1

你需要傳遞agruments張貼您的代碼清晰

sign_in(:user, User.find(params[:id])) 
+0

我的確如此。但得到了錯誤的參數錯誤 – ishwr

0

我可能遲到。但有同樣的問題,因爲我的用戶控制器中有一個sign_in方法。

您是否在控制器中檢查了要調用sign_in方法的sign_in方法?

+0

謝謝。但我已經找到了錯誤。這是愚蠢的錯誤。但無論如何感謝 – ishwr

+0

你是如何解決它的? @ishwr – kibaekr

3
sign_in(:user, User.find(params[:id]) 

如果您在看到current_user被設置後執行了binding.pry操作,

出於某種原因,在此之後執行重定向會使current_user爲零。

這就是爲什麼我在這樣的會議上設定的東西,然後重定向,然後檢查是否該會話ID設置,然後用它做上面的代碼:

session[:new_user_id] = params[:id] 
+0

作爲代碼唯一的答案,這已被標記爲低質量,可能很快就會被刪除。請添加關於此代碼的作用的解釋。 – nalply

+2

編輯它。你可以嘗試更好嗎?謝謝。 –

+0

對不起,這是我複製粘貼的標準答案,因爲有很多類似你的帖子。 – nalply