【发布时间】:2019-12-03 08:20:10
【问题描述】:
每当使用sferik/twitter gem 创建新插件时,我都会尝试让我的 Rails 5 应用发推文。在推文中,我想将 URL 发布到新插件。所以在我的控制器中,我添加了以下内容:
class PluginsController < ApplicationController
include Rails.application.routes.url_helpers
def create
@plugin = current_user.plugins.build(plugin_params)
$client.update("#{url_for(@plugin)}")
end
end
我用client.update 发送推文。我正在运行的事情是url_for(@plugin) 没有生成指向新插件的准确链接。它在我的推文中输出http://localhost:3000/plugins,它应该输出http://localhost:3000/plugins/does-this-work。
当我在 Rails 控制台中尝试相同的操作时,它会输出正确的链接。
2.5.7 :009 > include Rails.application.routes.url_helpers
=> Object
2.5.7 :010 > url_for(@plugin)
=> "http://localhost:3000/plugins/does-this-work"
为什么我的控制器和控制台的输出不一样?
【问题讨论】:
标签: ruby-on-rails url rails-console url-for