Как сделать ссылки на рельсы хэшированными? - PullRequest
1 голос
/ 27 апреля 2011

в моем приложении rails я использую 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, дружественным к глубоким ссылкам?

Спасибо

Ответы [ 3 ]

2 голосов
/ 27 апреля 2011

Вы всегда можете создать вспомогательный метод, чтобы справиться с этим для вас.

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)}" %>
0 голосов
/ 06 сентября 2012

немного позже, возможно; но вы можете упаковать весь файл маршрутов в область хэша, например:

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 в этом отношении

0 голосов
/ 27 апреля 2011
<%= 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("#") %>

А тебе лучше обернуть его как помощник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...