我对铁轨上的红宝石和红宝石很新,所以请原谅我,如果这听起来对你来说非常微不足道。
我想在我的rails应用程序的按钮单击上运行shell命令。我已经创建了所需的视图和操作,还更新了我的routes.rb
文件以发布到所需的视图。我还在我的模型中定义了一个函数,它最终会执行shell命令。一切运行顺利,工作流程按计划进行,但命令不会执行。此外,该应用程序显示没有错误。以下是我各自的模型,动作和控制器的片段。我在Ubuntu 12.04 LTS上使用Rails 4.1.1和Ruby-2.1.2。
这是我的路线文件。我已经覆盖了从/post
到'目录#create_directory'的默认directory#create
路由。
Rails.application.routes.draw do
match '/directories', to: 'directories#create_directory', via: 'post'
resources :directories
模型:我想要执行的命令在此函数中指定。
class Directory < ActiveRecord::Base
def self.create_directory
`mkdir dummy_dir`
end
end
自定义控制器操作
def create_directory
@directory = Directory.create_directory
end
新目录视图(使用脚手架生成) - 这是我们点击创建新目录选项后从索引页面着陆的页面。我添加了button_to
,点击它会将我重定向到自定义操作create_directory
。
<h1>New Directory</h1>
<%= button_to "Create Directory",
url_for( :action => "create_directory", :controller=> :directories ),:remote=>true %>
<%= link_to 'Back', directories_path %>
我还为create_directory动作创建了一个虚拟视图。我最终落在这个观点上。 好吧,一切都运行顺利,没有任何错误,但目录没有创建。关于我可能出错的地方的任何建议。 提前致谢