我只是想知道如何使理論上像localhost:3000 /:user/post /:post像Twitter一樣https://twitter.com/PigsAndPlans/status/491290440512331776以及如何給這個帖子一個獨特的編號和字母,像藤藤http://vine.co/v/M2JYAhg3HHY。創建像這樣的URL:用戶/:在軌道上張貼
感謝
我只是想知道如何使理論上像localhost:3000 /:user/post /:post像Twitter一樣https://twitter.com/PigsAndPlans/status/491290440512331776以及如何給這個帖子一個獨特的編號和字母,像藤藤http://vine.co/v/M2JYAhg3HHY。創建像這樣的URL:用戶/:在軌道上張貼
感謝
像這樣的事情在你的路由文件將匹配第一個URL模式
match ":username/post/:post_id", to: "users_posts#index"
並在控制器中爲您提供params[:username]
和params[:post_id]
變量。不過,請仔細考慮將變量(:用戶名)作爲路線的第一部分。您必須確保您的應用永遠不需要與該模式衝突的網址。更好的方法是您提供的vine URL網址,它有一個/v
前綴。
您可以在配置/ routes.rb中下面的代碼創建的URL模式
resources :users do
resources :posts
end
# http://localhost:3000/users/:user_id/posts/:post_id
@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
我不假設你已經閱讀過關於[路由系統](http://guides.rubyonrails.org/routing.html)的文章嗎?這並修改'to_param'(見[這裏](https://gist.github.com/cdmwebs/1209732))應該得到你所需要的。 – PinnyM
@PinnyM路由文章當然有幫助。我已經看到它,但只是剔除它,錯過了我需要的位哈哈,但對於編號我正在談論更多關於實際生成的號碼 – whyelse
這是'to_param'進來的地方 - 請參閱鏈接的文章。 – PinnyM