I am new to ruby on rails and trying to build an internal site to manage
several ruby scripts. What I am trying to accomplish; create web page
where an user clicks on a link (Execute Analyzer) to execute ruby script
(runs in the background – FitAnalyzer.rb). I am having trouble
understanding how to route this without redirecting to another web page.
I basically need help how to add the correct format to routes.rb.
analyzer.html.erb
<%= link_to "![Execute][1] Analyzer", :controller =>
'fit_anlayzer_controller', :method => 'execute_analyzer'%>
fit_analyzer_controller.rb
class FitAnalyzerController < ApplicationController
def analyzer
end
def execute_analyzer
# Delayed::Job.enqueue(AnalyzerJob.new(params[:id]), 3)
# command = 'ruby ~/ruby_scripts/fit_analyzer/FitAnalyzer.rb'
@execute_command = system 'ruby
/Users/gsypolt/rubyqa_project/ruby_scripts/fit_analyzer/FitAnalyzer.rb'
flash[:notice] = "Executing FitNesse Analyzer"
end
end
When accessing mylocalhost/fit_analyzer/analyzer receiving
this message below
No route matches {:controller=>"fit_anlayzer_controller",
:method=>"execute_analyzer", :popup=>true}
I have been learning ruby on rails from lyndia.com and book (rails 3
way)
mockup screenshot what i am trying to build
You need to add a route
The
fit_analyzer#execute_analyzercorresponds tocontroller#actionThen you need to call it using ajax. To do that add a
:remote => trueto yourlink_to