首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rails,如何打开Rails控制台并自动运行命令?

使用Rails,如何打开Rails控制台并自动运行命令?
EN

Stack Overflow用户
提问于 2014-08-05 14:44:40
回答 2查看 1.4K关注 0票数 1

编辑:控制台之后应该保持打开状态。我不想在控制台之外运行控制台命令。

我从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'),但这些都没有用。

EN

回答 2

Stack Overflow用户

发布于 2014-08-05 14:50:04

您为什么要在rails控制台中这样做?Rails有rake任务可以这样做,可以定义如下

代码语言:javascript
复制
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 doend中编写任何ruby代码。

http://railscasts.com/episodes/66-custom-rake-tasks查看更多信息

您可以在config/initializers/中编写初始化程序,并有条件地指定要运行的代码,

代码语言:javascript
复制
if defined?(Rails::Console)
 # in Rails Console
else
 # Not in Rails Console
end 
票数 1
EN

Stack Overflow用户

发布于 2014-08-05 14:48:16

为此,我正在使用马可波罗 gem。将gem添加到Gemfile中,创建.irbrc.rb并向其添加SomeModule::SomeClass.someMethod('myString')

UPD:另外,如果您不想在运行命令之后打开控制台,只需rails运行:

代码语言:javascript
复制
bundle exec rails runner "SomeModule::SomeClass.someMethod('myString')"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25141711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档