在我的rails app中我正在使用jQuery BBQ进行hashchange deeplinking等...
以下是我在rails中的现有链接:
<%= 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,深层链接友好的任何想法?
由于
答案 0 :(得分: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)}" %>
答案 1 :(得分: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("#") %>
你最好将其作为帮手包装
答案 2 :(得分: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