class ImportsController < ApplicationController
include ImportsHelper
skip_before_filter :verify_authenticity_token
def index
if %w(checkauth file init import).include? params[:mode]
send(params[:mode])
else
render :text => "wrong response\n"
end
end
private
def checkauth
...
end
def import
...
end
def init
...
end
def file
...
end
end
Rails controllers split def
-
16-07-2023 - |
質問
Desktop application sends a request to my Rails application like
http:/server/import?type=catalog&mode=init
http:/server/import?type=catalog&mode=file&filename=
http:/server/import?type=catalog&mode=import&filename=
Now my controller looks like
class ImportsController < ApplicationController
include ImportsHelper
skip_before_filter :verify_authenticity_token
def index
type = params[:type]
mode = params[:mode]
if type == "catalog"
case mode
when 'checkauth'
generate_cookie
render :text => "success\nimport_cookie\n#{set_cookie}\n"
when 'init'
render :text => "zip=yes\nfile_limit=52428800"
when 'file' #uploadfile
tempfile = Tempfile.new("importupload")
tempfile.binmode
tempfile << request.body.read
tempfile.rewind
import_params = params.slice(:filename, :type, :head).merge(:tempfile => tempfile)
importf = ActionDispatch::Http::UploadedFile.new(import_params)
@import = Import.new
@import.filename = importf
@import.cookie = cookie[:import_cookie]
@import.save
render :text => "success\n"
when 'import'
render :text => "232\n"
else
render :text => "wrong response\n"
end
else
render :text => "wrong response\n"
end
end
end
How can I split def to control looked
class ImportsController < ApplicationController
include ImportsHelper
skip_before_filter :verify_authenticity_token
def checkauth
end
def init
end
def file
end
end
Is this possible with routes.rb?
解決
所属していません StackOverflow