2016-06-27 3 views
0

rakeタスクを使用してデータベースを更新するrubyファイルを実行しようとしています。しかし、私はコードを実行する残業、私はエラーを言って: レーキは中止! は、このようなファイルをロードすることはできません - アプリ/サービス/ insert_dataレーキが中止!そのようなファイルを読み込めません。Ruby on Rails

「insert_dataが」という名前のフォルダ内のアプリのディレクトリの下に配置されたルビーファイル「サービス」ここ

が、私はそれを実行するために作成rakeタスクであります:

require 'app/services/insert_data' 

namespace :record_generate do 


task :test do 
    ruby "app/services/insert_data" 
end 


end 

このエラーを取り除くのを手伝ってください。

答えて

2

は、あなたがそれを宣言する必要がrakeタスク内Railsの環境を使用できるようにするには、テストブロックのtry -

Rake.application.rake_require "#{Rails.root}/app/services/insert_data" 
0

app/services/insert_dataをスクリプトディレクトリ内に配置してください。私はあなたのルビーファイルは、ロジックを持つレールモデルではないと仮定しています。私はこれを試してみる。

  1. ファイルを入手して/script/ディレクトリに置きます。

  2. 置き、あなたのファイルの先頭にコードのこれらの行

    #! /usr/bin/env ruby

    require_relative "../config/environment"

は、今すぐあなたのコマンドラインにあなたはこれを実行しないことができます。

rails runner name_of_your_file

それはそれを行う一つの方法です。あなたが特にレーキタスクを使用する必要があるなら、私はそれについても回答を投稿しようとすることができます。あなたのタスクインサイド

namespace :record_generate do  
    task :test => :environment do |_, args| 
     ruby "app/services/insert_data" 
    end 
end 
+0

私は、特にrakeタスクを使用する必要がありますあなたがそれをすれば、本当にいいと思うだろう –

+0

つかまえた。私はNicかBryceのどちらかがあなたの前を覆っていると思う。そうでない場合、私はこの質問のバリエーションを試してみます。 –

0

+0

ありがとう!!!私は働いた –

+0

今すぐレイクが中止されたというエラーが表示されます! /users/Desktop/platform-develop/app/services/insert_data –

+0

Nicのように 'task:test =>:environment do'に調整して、insert_dataを投稿したり、関数/メソッドの形式を表示できます。クラスやモジュールがあれば呼び出されますか? – beaorn

関連する問題