【问题标题】:Rails routing to external site from model column through controllerRails 通过控制器从模型列路由到外部站点
【发布时间】:2017-07-08 20:56:09
【问题描述】:

我的控制器有问题。我正在使用 original_url short_url 和 sanitized_url 制作 url 对象。我可以很好地创建和保存链接。我遇到的问题是,当通过短链接返回 mysite.com/short_url 时,它需要通过控制器显示并获取经过处理的 url 并重定向到该外部站点。 有人可以帮我弄清楚这段代码有什么问题吗?

我得到未定义的方法“sanitized_url”

urls_controller.rb - 显示

short = params[:short_url]
@url = Url.where("short_url = ? ", short)

redirect_to @url.sanitized_url

我的路线。

  root to: 'urls#index'
  get "/:short_url", to: "urls#show"
  get "shortened/:short_url", to: "urls#shortened", as: :shortened
  resources :urls

谢谢

【问题讨论】:

    标签: ruby-on-rails-5


    【解决方案1】:

    未定义的方法“sanitized_url”

    where 返回AR 收藏。您需要在实例上应用sanitized_url

    下面应该可以工作

    short = params[:short_url]
    @url = Url.where("short_url = ? ", short).first
    
    redirect_to @url.sanitized_url
    

    【讨论】:

    • 当我在控制台中运行代码时,它会很好地抓取保存的 url,但它似乎是一个路由问题,因为当您按照链接返回站点时。它无法识别其短网址。如果您想获得更好的示例,我有一个演示 ap 链接。 retrospect-jr.herokuapp.com/urls
    • @Jrinard 无法理解您在说什么。我的回答解决了问题吗?
    • 是的,它确实解决了它。我意识到我的路线有问题。当我将资源 :urls 移动到自定义路由上方时,它会修复它。谢谢你的帮助!我+1,但我的代表仍然太低而无法显示。谢谢
    猜你喜欢
    • 2018-07-23
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    相关资源
    最近更新 更多