2014-07-21 31 views
0

我只是想知道如何使理論上像localhost:3000 /:user/post /:post像Twitter一樣https://twitter.com/PigsAndPlans/status/491290440512331776以及如何給這個帖子一個獨特的編號和字母,像藤藤http://vine.co/v/M2JYAhg3HHY創建像這樣的URL:用戶/:在軌道上張貼

感謝

+0

我不假設你已經閱讀過關於[路由系統](http://guides.rubyonrails.org/routing.html)的文章嗎?這並修改'to_param'(見[這裏](https://gist.github.com/cdmwebs/1209732))應該得到你所需要的。 – PinnyM

+0

@PinnyM路由文章當然有幫助。我已經看到它,但只是剔除它,錯過了我需要的位哈哈,但對於編號我正在談論更多關於實際生成的號碼 – whyelse

+0

這是'to_param'進來的地方 - 請參閱鏈接的文章。 – PinnyM

回答

1

像這樣的事情在你的路由文件將匹配第一個URL模式

match ":username/post/:post_id", to: "users_posts#index" 

並在控制器中爲您提供params[:username]params[:post_id]變量。不過,請仔細考慮將變量(:用戶名)作爲路線的第一部分。您必須確保您的應用永遠不需要與該模式衝突的網址。更好的方法是您提供的vine URL網址,它有一個/v前綴。

0

您可以在配置/ routes.rb中下面的代碼創建的URL模式

resources :users do 
    resources :posts 
end 

# http://localhost:3000/users/:user_id/posts/:post_id 
+0

@whyelse你可以看到http://stackoverflow.com/questions/6021372/best-way-to-create-unique-token-in-rails或http://stackoverflow.com/questions/19115929/generatinga-a- unique-url-with-token-in-rails-4-for-an-external-form-response來生成唯一標記 – Murtza