Ruby on rails 使用表单运行rake任务

Ruby on rails 使用表单运行rake任务,ruby-on-rails,Ruby On Rails,我创建了一个rake任务,它接受一个参数。我可以使用rake my_task[“args”]在命令行中运行此rake任务 我现在尝试创建一个带有文本字段和按钮的表单。单击按钮时,rake任务应以textfield的内容作为任务的参数运行 我怎样才能得到一个rails表单(我相信form_标记,它与任何资源都不相关)以这种方式运行,我怎样才能在点击按钮时运行rake任务 我不确定什么会去哪里,所以如果你能指定指令应该在哪里,这对我将是一个巨大的帮助。rake任务是一个服务器脚本,因此你需要遵循的模

我创建了一个rake任务,它接受一个参数。我可以使用
rake my_task[“args”]
在命令行中运行此rake任务

我现在尝试创建一个带有文本字段和按钮的表单。单击按钮时,rake任务应以textfield的内容作为任务的参数运行

我怎样才能得到一个rails表单(我相信form_标记,它与任何资源都不相关)以这种方式运行,我怎样才能在点击按钮时运行rake任务


我不确定什么会去哪里,所以如果你能指定指令应该在哪里,这对我将是一个巨大的帮助。

rake任务是一个服务器脚本,因此你需要遵循的模式将是这样的

1) 用户请求具有文本字段和提交按钮的表单(控制器#新建)

2) 用户点击向rails应用程序(controller#create)发出请求的表单上的submit

3) 控制器操作使用“系统”方法运行rake任务,并通过以下表单传递参数:

class MyController  < ApplicationController
  def new
  end

  def create
    system "rake my_task", params[:args]
  end
end

如果您想了解更多关于在控制器中运行rake任务的信息,请查看此railscast

Perfect,这正是我想要的。
<%= form_tag my_rake_task_path, :method => 'post' do %>
   <%= text_field_tag :args %>
   <%= submit_tag "Run Task" %>
<% end %>
get 'rake_task', to: 'mycontroller#new'
post 'rake_task', to: 'mycontroller#create', :as => 'my_rake_task'