1

私のレールアプリでは、hashchangeディープリンクなどにjQuery BBQを使用しています...

レール内の私の既存のリンクは次のとおりです。

<%= link_to('View on Site ', project_topic_url(@project.id, @topic, :only_path => false),) %>

これは、メールで送信される user_mailer で機能しています...

問題はこれが生成されます: http://www.site.com/project/1/topic/23

そして、私が欲しいのは: http://www.site.com/#/project/1/topic/23

URL のハッシュ # を ajax、ディープリンクに適したものにする方法についてのアイデアはありますか?

ありがとう

4

3 に答える 3

2

これを処理するためのヘルパーメソッドをいつでも作成できます。

def project_topic_ajax(id, topic)
   "http://www.site.com/#/project/#{id}/#{topic.name}/#{topic.id}"
end

次に、デフォルトのリンクヘルパーの代わりにそれを呼び出します。

更新:私はあなたのための解決策を見つけました。

<%= link_to "View on Site", "##{project_topic_url(@project.id, @topic)}" %>

きれいですが、あなたが探していたものとは異なります。

絶対パスの場合、次のようになります(少し汚れています):

<%= link_to "View on Site", "http://www.site.com/##{project_topic_url(@project.id, @topic)}" %>
于 2011-04-27T18:53:34.963 に答える
0

少し遅れたかもしれません。ただし、次のようにルート ファイル全体をハッシュ スコープにパックできます。

MyRails::Application.routes.draw do
  scope :hash, :path => "/#" do
    resources :project do
      resources :topic
      # ...
    end
    # ...
  end
end

Rails 3.2.8 で実行rake routesすると、望ましい結果が得られました。

これがあなたのビューやjQuery-BBQにどのように影響するかわかりません

于 2012-09-06T12:26:28.277 に答える
0
<%= link_to 'View on Site ', [project_topic_url(@project.id, @topic).gsub(/#{project_topic_path(@project.id, @topic)}/, ""), project_topic_path(@project.id, @topic)].joins("#") %>

そして、ヘルパーとしてラップする方が良いでしょう

于 2011-04-27T19:35:01.923 に答える