2014-02-05 2 views
0

내 테이블에 값을 쿼리하는 인스턴스 변수가 있는데이 값을 내 레이크 작업으로 보내야합니다.매개 변수가있는 컨트롤러에서 레이크 작업 호출

다음
@turl = Fteam.where(:id => @ids).select(:TeamUrl) 
system "rake updateTm:update[@turl]" 

내 레이크 파일입니다 : 그래서 여기

내 컨트롤러 2 관련 선입니다

This is the selected Team URL: @turl 

:

desc "Import Players" 
    task :update, [:Tmurl] => :environment do |t, args| 

require 'rubygems' 
require 'nokogiri' 
require 'open-uri' 
require 'mechanize' 

agent = Mechanize.new 

puts "This is the selected Team URL: #{args.Tmurl}" 
    end 
end 

이 무엇 레이크 작업 반환 내 생각 엔 컨트롤러가 변수를 올바르게 전달하지 못한다는 것입니다. 그렇다면 변수의 실제 값을 레이크 작업에 전달하여 출력이 올바른지 어떻게 알 수 있습니까?

답변

2

아마 당신은 보간

"rake updateTm:update[#{@turl}]" 
+0

레이크 파일 이름 디렉터리 또는 볼륨 레이블 구문 – user3240928

0

그것은 .rb 파일입니다을 사용해야 할 수도 있습니다. 루비에서는 변수를 직접 호출 할 수 있습니다.

당신은 모든 도움과 아이디어 모두를위한

system "rake updateTm:update[#{@turl}]" 
+0

파일 이름 디렉터리 또는 볼륨 레이블 구문이 잘못되었습니다. – user3240928

+0

레이크 작업이이 방법으로 컨트롤러에서 호출 중입니까? 그걸 디버깅 했니? – sunil

+0

예,하지만 실제 값을 제공하지 않았으며 응답을 제안했습니다. 게시 할 것입니다. – user3240928

0

감사를 사용해야합니다, 난는 해결책을 제공했다. 대신 @turl = Fteam.where(:id => @ids).select(:TeamUrl)

나는 변경이 나에게 내가 그것을 번역 할 수있는 다음 활성 기록, 오류의 원인이 된이 값을 전달할 수 없기 때문에 오히려 필요한 실제 값을 준 @turl = Fteam.where(:id => @ids).pluck(:TeamUrl)

에 이해합니다.

관련 문제