修改:之后控制台应保持打开状态。我不想在控制台之外运行控制台命令。
我从Bash提示符中打开这样的Rails控制台:bundle exec rails console
每次打开它时,我都需要运行如下命令:SomeModule::SomeClass.someMethod('myString')
我想将这两个命令组合成一个看起来像这样的命令:bundle exec rails console -s myString
(或者更可能是一个紧凑的Bash函数)。
我尝试了bundle exec rails console && SomeModule::SomeClass.someMethod('myString')
和bundle exec rails console; SomeModule::SomeClass.someMethod('myString')
,但这些都没有用。
答案 0 :(得分:0)
我正在使用marco-polo gem来达到这个目的。将gem添加到Gemfile,创建.irbrc.rb
并向其添加SomeModule::SomeClass.someMethod('myString')
。
UPD:此外,如果您不希望在运行命令后打开控制台,只需使用rails runner:
bundle exec rails runner "SomeModule::SomeClass.someMethod('myString')"
答案 1 :(得分:0)
为什么你想在rails控制台中使用它? Rails有rake任务,可以定义如下
namespace :pick do
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
desc "Pick a random product as the prize"
task :prize => :environment do
puts "Prize: #{pick(Product).name}"
end
desc "Pick a random prize and winner"
task :all => [:prize, :winner]
def pick(model_class)
model_class.find(:first, :order => 'RAND()')
end
end
由rake pick执行:胜利者。您可以在task :prize => :environment do
和end
点击http://railscasts.com/episodes/66-custom-rake-tasks
了解详情或
您可以在config/initializers/
内编写初始化程序,并有条件地指定要运行的代码,
if defined?(Rails::Console)
# in Rails Console
else
# Not in Rails Console
end