params
底線是你正在尋找在錯誤的解決方案 - params
哈希鍵是相當無關緊要,你需要能夠更有效地使用其中包含的數據。
你的路線將建設成爲:
#config/routes.rb
resources :controller #-> domain.com/controller/:id
這意味着,如果你申請這條航線:domain.com/controller/your_resource
,在params[:id]
哈希值會your_resource
(不要緊,如果它被稱爲params[:name]
或params[:id]
)
-
friendly_id
你有幾個答案建議friendly_id
的原因是因爲它覆蓋的ActiveRecord
的find
方法,讓您在您的查詢中使用slug
:
#app/models/model.rb
Class Model < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
end
這可以讓你做到這一點:
#app/controllers/your_controller.rb
def show
@model = Model.find params[:id] #-> this can be the "name" of your record, or "id"
end
有一個寶石[frendly_id](https://github.com/norman/friendly_id)此 – zishe
[更改在導軌路由參數id]的可能重複(http://stackoverflow.com/問題/ 2837102 /改變參數在軌道路由) –
你可以使用'to_param'方法,閱讀更多關於'to_param'方法[here](http://apidock.com/rails/ActiveRecord/ Base/to_param) –