2010-08-02 18 views
1

我正在将我的网站从Google App Engine更改为rails,并希望保留我在Google搜索中的位置。目前我的网站使用URL /page?pid=microsoft-interview-questions访问Microsoft分部的面试问题。我将如何创建一个路线,可以发送到'/tags/:id'其中:在这种情况下id将是微软?如何编写一个在轨道上对SEO友好的路线?

+0

你想保留现有的路线,还是想发送到“标签”?或两者? – 2010-08-02 21:39:23

+0

不太清楚你在问什么。你想收到:“/ tags/page?pid = microsoft-interview-questions”与“page?pid = microsoft-interview-questions”是:id参数? – mark 2010-08-02 21:39:26

+0

抱歉不清楚,我想'/ page?pid = microsoft-interview-questions'转到:controller => tags,:action => show标记为microsoft。 – Teddy 2010-08-02 21:44:04

回答

1

除了Josh的答案,我会把这个位置进行格式化:

# your controller 

def show 
    @subject = Subject.find my_stripped_id 


private 
def my_stripped_id 
    params[:id].sub(/-interview-questions/, '') 
end 
+0

这需要关注蒸馏ID的逻辑部分。看来虽然,那是因为?它传递的参数是pid而不是id – Teddy 2010-08-02 22:44:06

1

这样的事情应该工作(在routes.rb中):

map.connect '/页PID =:号', :控制器=> '标签',:动作=> “秀”

看到routes reference

+0

唯一的问题是,我不知道如何解析标签名称后的'-interview-questions'。 – Teddy 2010-08-02 21:44:48