编辑:控制台之后应该保持打开状态。我不想在控制台之外运行控制台命令。
我从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'),但这些都没有用。
发布于 2014-08-05 14:50:04
您为什么要在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用耙镐执行:胜利者。您可以在task :prize => :environment do和end中编写任何ruby代码。
在http://railscasts.com/episodes/66-custom-rake-tasks查看更多信息
或
您可以在config/initializers/中编写初始化程序,并有条件地指定要运行的代码,
if defined?(Rails::Console)
# in Rails Console
else
# Not in Rails Console
end 发布于 2014-08-05 14:48:16
为此,我正在使用马可波罗 gem。将gem添加到Gemfile中,创建.irbrc.rb并向其添加SomeModule::SomeClass.someMethod('myString')。
UPD:另外,如果您不想在运行命令之后打开控制台,只需rails运行:
bundle exec rails runner "SomeModule::SomeClass.someMethod('myString')"https://stackoverflow.com/questions/25141711
复制相似问题