使用ruby / rails来捕获正在进行的文件请求

时间:2010-05-10 00:23:52

标签: ruby-on-rails ruby connection

我正在使用可以播放mp3的rails应用程序。有没有办法用ruby捕获mp3文件的请求,重新格式化请求(url),并传递请求?

我真的只是想保护网址......

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解你想要做什么,但不仅仅是捕获Routes文件中的路径并将其传递给一个动作(或直接在Rails 3中的Routes文件中执行),这将是redirect_to你想要的路径?

拿2

所以要加密你可能想做这样的事情: 在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

这应该指向正确的方向,但您必须获得适合您应用的详细信息。