ruby-on-rails – 如何在rails应用程序中处理共享唯一URL?

ruby-on-rails – 如何在rails应用程序中处理共享唯一URL?,第1张

概述我正在创建一个Web应用程序来学习 Ruby on rails.该应用程序允许用户登录并在画布上绘图.我希望用户能够通过特定于用户艺术作品编号的唯一生成的URL来共享杰作.艺术作品的创建者也应该选择密码保护URL.我不需要在Facebook或LinkedIn,Twitter或类似的东西上共享URL.只需要一个可以通过电子邮件发送或发送短信等的简单URL. 我应该用什么方法来实现这个?是否有任何宝石 我正在创建一个Web应用程序来学习 Ruby on rails.该应用程序允许用户登录并在画布上绘图.我希望用户能够通过特定于用户艺术作品编号的唯一生成的URL来共享杰作.艺术作品的创建者也应该选择密码保护URL.我不需要在Facebook或linkedIn,Twitter或类似的东西上共享URL.只需要一个可以通过电子邮件发送或发送短信等的简单URL.

我应该用什么方法来实现这个?是否有任何宝石可以轻松开箱即用?任何设计建议和智慧将不胜感激.谢谢!

解决方法 您的杰作模型上可以有一个名为public的布尔值.如果图片是公开的,那么任何人都可以访问它.但是,如果它不是公开的,那么使用您的返回URL将不会执行任何 *** 作.

您的公共网址可以通过哈希创建.我通常喜欢在创建模型时创建哈希标记.

rails g migration add_hash_token_to_masterpIEces hash_token

在您的模型中,您可以使用before_create方法来调用私有方法,taht将使用随机十六进制更新您的hash_token.

before_create :generate_hash_tokenprivate  def generate_hash_token    begin      self.hash_token = SecureRandom.hex    end while self.class.exists?(hash_token: hash_token)  end

然后在您的路线文件中,您可以执行以下 *** 作

匹配“/ public /:hash_token”=> “杰作#public_masterpIEce”,如:“public”

然后在您的控制器中,您可以拥有哈希令牌的查找方法,并具有相应的视图以显示公共用户的图像.注意_and_public只发现那些公开的.即使散列有效,如果杰作不公开,它也不会返回记录.

def public_masterpIEce  @masterpIEce = MasterpIEce.find_by_hash_token_and_public(params[:hash_token],true)  ...end

然后在您的杰作视图中,您可以拥有一个名为public_masterpIEce.HTML.erb的文件,该文件是尚未拥有授权帐户但仍可以查看图片的用户的特定呈现.如果您使用像cancan这样的宝石进行授权,则需要确保允许public_masterpIEce *** 作.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何在rails应用程序中处理共享唯一URL?全部内容,希望文章能够帮你解决ruby-on-rails – 如何在rails应用程序中处理共享唯一URL?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1275210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存