Ruby on rails Rails秘密URL
我正在尝试注册可选的Rails应用程序。为了简单起见,让我们假设它是一个粘贴库(也可以是类似URL缩短器的东西)。我希望每个粘贴都可以从两个URL访问:一个具有只读访问权限以便与其他人共享,另一个具有编辑访问权限以便粘贴的原始创建者 到目前为止,我已经尝试通过在粘贴模型中创建两个关键点来实现这一点: :显示\u id,:编辑\u id 我有一个在before_validation:on=>create回调上运行的方法,它为这些键生成这两个随机字符串 我设置了一些路由,以便“/s/show_id”和“/e/:edit_id”转到相应的控制器Ruby on rails Rails秘密URL,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在尝试注册可选的Rails应用程序。为了简单起见,让我们假设它是一个粘贴库(也可以是类似URL缩短器的东西)。我希望每个粘贴都可以从两个URL访问:一个具有只读访问权限以便与其他人共享,另一个具有编辑访问权限以便粘贴的原始创建者 到目前为止,我已经尝试通过在粘贴模型中创建两个关键点来实现这一点: :显示\u id,:编辑\u id 我有一个在before_validation:on=>create回调上运行的方法,它为这些键生成这两个随机字符串 我设置了一些路由,以便“/s/show_id”
现在我想让“资源”路由帮助器方法(例如:粘贴路径、编辑粘贴路径)指向这些URL,而不是默认URL。不过,似乎我需要重写to_param方法来完成此操作,但我不确定如何让它正确输出:show_id或:edit_id。重写to_param将不起作用,因为它假定记录有一个标识符。我会尝试重新定义粘贴路径和编辑路径。类似于
module ApplicationHelper
def paste_path(paste)
"/s/#{paste.show_id}"
end
def edit_paste_path(paste)
"/e/#{paste.edit_id}"
end
end
注意,这将只处理最简单的用例。您可能希望在帮助程序中处理额外的选项,或者同时处理粘贴url,或者处理类似于url for([:edit,paste])等的内容,但这就是我要开始的地方。覆盖到\u参数将不起作用,因为它假定记录具有单个标识符。我会尝试重新定义粘贴路径和编辑路径。类似于
module ApplicationHelper
def paste_path(paste)
"/s/#{paste.show_id}"
end
def edit_paste_path(paste)
"/e/#{paste.edit_id}"
end
end
注意,这将只处理最简单的用例。你可能想在助手中处理额外的选项,或者处理粘贴url,或者处理类似于url for([:编辑,粘贴])等的内容,但这就是我要开始的地方。澄清一下:你是否也在应用程序中使用了任何类型的用户身份验证?我很想看到你只有一个url和某种身份验证来显示内部的编辑/删除操作。是的,我正在使用一些用户身份验证,但正如我所说的,我计划将注册设置为可选。我现在正在考虑的一个选择是,只允许注册用户进行编辑。澄清一下:您是否也在应用程序中使用任何类型的用户身份验证?我很想看到你只有一个url和某种身份验证来显示内部的编辑/删除操作。是的,我正在使用一些用户身份验证,但正如我所说的,我计划将注册设置为可选。我现在正在考虑的一个选择是只对注册用户进行编辑。