私のコントローラは、私が:guuid
を使用するデフォルト:id
を変更したい、作成追加などRESTルートとオーバーライド:to_paramとID
を編集するためのデフォルトのRESTfulなルートを使用しています。だから何私がしたした
# routes.rb
resources :posts
# Post Model
class Post < ActiveRecord::Base
def to_param # overridden
guuid
end
end
これは動作しますが、私はこのコードこれを見たとき、私のmodifed 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]
に合格しなければなりませんか?
私のアプローチが正しいかどうか、あるいは何かを検討するかどうかについてのフィードバックを探しています。
動作しても、必ずしも正しいとは限りません。
これはレールのコンベンションであれば、それに固執します。私はちょうど彼らのルートでそれを上書きする別の方法かもしれないと思った。フィードバックをお寄せいただきありがとうございます。 – alenm