Мой контроллер использует RESTful-маршруты по умолчанию для создания, добавления, редактирования и т. Д.
Я хочу изменить значение по умолчанию :id
для использования :guuid
.Итак, что я сделал:
# routes.rb
resources :posts
# Post Model
class Post < ActiveRecord::Base
def to_param # overridden
guuid
end
end
Это работает, но мой модифицированный код контроллера REST имеет что-то вроде этого
def show
@post = Post.find_by_guuid(params[:id])
@title = "Review"
respond_to do |format|
format.html # show.html.erb
end
end
Когда я вижу этот код ..
Post.find_by_guuid(params[:id])
это может показаться неправильным, но это работает.Я не понимаю, почему я не могу написать это так:
Post.find_by_guuid(params[:guuid])
Почему мне все еще приходится передавать params[:id]
, когда я его не использую?
Ищетеобратная связь о том, правильный ли мой подход или что-либо еще, чтобы рассмотреть.
Даже если это работает, это не всегда означает, что это правильно.