2016-09-14 2 views
0

현재 recipe box YouTube 튜토리얼을 따르고 있습니다. 내가 레일 콘솔을 열고Ruby on Rails의 로컬 변수가 정의되지 않았습니다.

@recipe = current_user.recipes.build 

나는 다음과 같은 오류가 발생했습니다 입력 할 때 :

NameError: undefined local variable or method `current_user' for main:Object 
from (irb):3 
from /Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/commands/console.rb:65:in `start' 
from /Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/commands/console_helper.rb:9:in `start' 
from /Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:78:in `console' 
from /Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!' 
from /Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in `<top (required)>' 
from bin/rails:9:in `require' 
from bin/rails:9:in `<main>' 

누군가가 아이디어 무엇을 잘못하고 나는이 문제를 해결할 수있는 방법을 가지고 있습니까? 내 사용자 모델에 devise gem을 사용하고 있습니다.

답변

3

당신은 당신의 레일 콘솔 내부에 current_user에 액세스하므로

user = User.find(your_user_id) 
user.recipes.build 
+0

좋아, 나는 그것을 시도 할 것이다. 정확히 어디에서이 라인을 추가해야합니까? –

+0

을 레일스 콘솔에 넣으십시오. 왜냐하면 콘솔 내부의 current_user에 액세스하려고하기 때문에, 사용자가 일부 작업을 수행해야하기 때문에, 예를 들어'user = User.find (id)'할 수 있습니다. 사용자가 무언가를 수행하다 –

0

당신은 레일 콘솔에서 current_user에 액세스 할 수 없습니다 시도 할 수 없습니다. 당신은 사용자 변수를 원하는 경우 다음 구축 receipies 사용 후, 당신은 또한 user = User.create(user parameters) &처럼 레일 콘솔에서 사용자를 생성 할 수 있습니다 user.recipes.build 처럼 사용 후

user = User.find(some_id) 

&처럼 검색

1

CURRENT_USER devis의 before_filters 중 하나가 제공하는 변수이므로 액세스 권한이없는 컨트롤러 외부에서 여전히 해당 컨텍스트에 있기를 원하면 gem byebug을 사용하고를 삭제할 수 있습니다 10 byebug 코드 또는 디버거 실행이 중지되고 필요한 범위를 테스트하여 필요한 코드를 모두 테스트해야합니다. 그렇지 않은 경우 레일을 사용하는 경우 사용자를 반입해야합니다 질문과 함께 오래된 방법

User.find(user_id)