是否可以在ruby controller / view中运行rails console命令并显示输出

时间:2014-03-06 08:31:16

标签: ruby-on-rails ruby

示例我想在管理部分中创建命令下拉列表。当用户选择一个时,例如

Purchase.all

User.where(:active => 1)

基本上,我会在创建一个功能齐全的后端之前在控制台中运行的任何常用命令。我知道这有点不同寻常,但我只是在寻找一种快速的方法来提供一些常见的管理查询。一旦命令运行,我希望它显示将在rails控制台中显示的确切输出。我已经安装了Hirb gem,它在控制台中格式化结果,并希望在视图中输出时显示格式。这完全可以实现吗?

1 个答案:

答案 0 :(得分:2)

当然可以在您的操作中运行命令render it with Hirb并将输出传递给您的视图:

def action
  result = run_command(params[:command])

  Hirb::View.load_config
  Hirb::View.render_method = lambda { |output| @hirb_output = output }
  Hirb::View.render_output(result)
end

private

def run_command(command)
  case command
  when 'purchase_all'
    Purchase.all
  when 'active_users'
    User.where(:active => 1)
  end
end

在你看来:

<pre>
  <%= @hirb_output %>
</pre>

但是,我会改用ActiveAdminRailsAdmin