2014-01-29 3 views
0

Я работаю в rails.i хочу вызвать функцию (show) класса «twitter» в searcht1, которая находится в «lib» в том же каталоге из задачи rake.Вызов функций из разных файлов ruby ​​в задачах rake

lib/task/search.rake:                           

require_relative "lib/Searcht1"  
    namespace :Searcht do 
    task :search => :environment do 
    obj=Twitter.new 
    obj.show 
    end 
    end 

и класс внутри «searcht1.rb», как это

class Twitter 
def show 
    "anylogic" 
end 
end 

но не называет, что function.and я не получаю никакого результата. значительно aprreciate помощи

+0

Вопросы просящих кода должны продемонстрировать минимальное понимание решаемой задачи. Включите попытки решения, почему они не работают, и ожидаемые результаты. –

+0

Как насчет 'require_relative '../ lib/searcht1" '? У вас, похоже, тоже есть опечатки, например. 'searcht1' против' seracht1' и 'Twitter' vs.' twitter', но, возможно, это просто от ввода в вопрос слишком быстро ... –

+0

@ p11y: не работает "../lib/searcht1" и о тех опечаток. да, это была моя ошибка ввода в вопросе –

ответ

0

Я знаю, этот вопрос немного устарел, но у меня была проблема в моем rails5 приложении, и это, как я держу свои задачи в чистоте :)

Пожалуйста сделайте подкаталог searchdir в Библиотека/задача s =>Библиотека/задачи/searchdir и поместить ваш файл ссылки searcht1.rb там. Теперь вы можете ссылаться на него в своем файле рейка.

Обратите внимание: он запущен из файла, на который делается ссылка.

# in lib/tasks/search.rake                           

namespace :Searcht do 
task :search => :environment do 
    require_relative "searchdir/searcht1"  
end 
end 

сделать ваш код работать здесь:

# in lib/tasks/searchdir/searcht1.rb 
class Twitter 
    def show 
    "anylogic" 
    end 
end 

obj=Twitter.new 
obj.show