1


0

Rails:このpingbackで間違ったリンクを取得するのはなぜですか?

そのため、レールアプリの準備ができているピンバック送信者がほとんどいます(人々はコンテンツへのリンクを投稿し、それらに寄付します)。 ほとんどです。

ここのコードから多くを借りました: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
リンクをワードプレスのブログに正常に送信しているように見えますが、トラックバックに表示されているリンクを見ると、次のようになります:http://www.theurl.com/that/my/browser/iscurrentlypointing/at/http

//www.MyApp.org/links/#\{link.to_param}/donations/new "

私が欲しいのは、この長い文字列の後半だけです。 ブラウザの現在の場所がなぜそこに潜入しているのかわからない。

私は私のブログの2つでこれを試しましたので、それは私のワードプレスのインストールに関連する問題ではないようです。

更新:さて、これは少し奇妙です。ページのソースを確認したところ、正しいリンクが表示されています。 ただし、クリックすると、上記の奇妙なリンクに移動します。 これはWordpressの問題ですか?

1 Answer


1


おっと! 単なる構文エラーのようです。 卑劣な二重コロン

この行

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

もちろんこのようなはずです

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