【发布时间】:2010-05-10 00:23:51
【问题描述】:
我正在使用一个播放 mp3 的 rails 应用程序。有没有办法用 ruby 捕获对 mp3 文件的请求,重新格式化请求(url),然后传递请求?
我真的只是想保护网址...
【问题讨论】:
标签: ruby-on-rails ruby connection
我正在使用一个播放 mp3 的 rails 应用程序。有没有办法用 ruby 捕获对 mp3 文件的请求,重新格式化请求(url),然后传递请求?
我真的只是想保护网址...
【问题讨论】:
标签: ruby-on-rails ruby connection
我不确定我是否完全理解您想要做什么,但不会只是在您的 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
这应该会为您指明正确的方向,但您必须为您的应用获取正确的详细信息。
【讨论】: