Rails:为什么我在这个pingback上得到错误的链接?

时间:2010-08-30 19:27:08

标签: ruby-on-rails wordpress trackback pingback

所以我几乎有一个pingback发送者准备好我的rails应用程序(人们发布链接到内容并捐赠给他们)。几乎。

我从这里的代码中大量借用: http://theadmin.org/articles/2007/12/04/mephisto-trackback-library/

为了我的目的,我稍微修改了一下:

require 'net/http'
require 'uri'

class Trackback

  @data = { }

  def initialize(link_id)
    link = Link.find(link_id)
    site = Link.website

    if link.nil?
      raise "Could not find link"
    end

    if link.created_at.nil?
      raise "link not published"
    end

    @data =  {
      :title => link.name,
      :excerpt => link.description,
      :url => "http:://www.MyApp.org/links/#{link.to_param}/donations/new",
      :blog_name => "My App"
    }
  end

  def send(trackback_url)
    u = URI.parse trackback_url
    res = Net::HTTP.start(u.host, u.port) do |http|
      http.post(u.request_uri, url_encode(@data), { 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8' })
    end
    RAILS_DEFAULT_LOGGER.info "TRACKBACK: #{trackback_url} returned a response of #{res.code} (#{res.body})"
    return res
  end

  private

  def url_encode(data)
    return data.map {|k,v| "#{k}=#{v}"}.join('&')
  end

end

看起来我正在成功地将链接发送到我的wordpress博客,但是当我查看轨迹上显示的链接时,我得到了这个:http://www.theurl.com/that/my/browser/iscurrentlypointing/at/http:://www.MyApp.org/links/# {link.to_param} / donations / new“

我想要的只是这个长串的后半部分。不知道为什么我浏览器上的当前位置在那里偷偷摸摸。

我在我的两个博客上试过这个,所以它似乎与我的wordpress安装无关。

更新:好的,这有点奇怪:我检查了页面源,它​​显示了正确的链接。然而,当我点击它时,我会被引导到我上面提到的奇怪链接。这是一个Wordpress问题吗?

1 个答案:

答案 0 :(得分:1)

糟糕!看起来这只是一个语法错误。一个偷偷摸摸的双结肠

这一行

url => "http:://www.MyApp.org/links/#{link.to_param}/donations/new"

当然应该是这样的

url => "http://www.MyApp.org/links/#{link.to_param}/donations/new",