我正在使用可以播放mp3的rails应用程序。有没有办法用ruby捕获mp3文件的请求,重新格式化请求(url),并传递请求?
我真的只是想保护网址......
答案 0 :(得分:1)
我不确定我是否完全理解你想要做什么,但不仅仅是捕获Routes文件中的路径并将其传递给一个动作(或直接在Rails 3中的Routes文件中执行),这将是redirect_to
你想要的路径?
所以要加密你可能想做这样的事情:
在song.rb
(模型):
class Song < ActiveRecord::Base
before_create :create_secret_param
private
def create_secret_param
self.secret = rand(100000)
end
end
这将创建一个秘密参数,您可以使用它来访问它。
在routes.rb
map.secret_song ':id:secret', :controller => 'songs', :action => 'show', :id => /\d+/, :secret => /\d{5}/
在song_controller.rb
def show
if param[:secret]
@song = Song.find param[:id], :conditions => {:secret => params[:secret]}
elsif # check if is user is ok or whatever
@song = Song.find param[:id]
redirect_to secret_song_url(:id => @song.id, :secret => @song.secret)
end
end
这应该指向正确的方向,但您必须获得适合您应用的详细信息。