【Rails】modelでroutes.rbが作ったpathを使うとき
先週から詰まっていた所がやっと解決した。
Railsのmodel内のクラスからuser_うんたら_かんたら_pathを一生懸命呼ぼうとしてた。
でも未定義と言われる…。
でもあてはただのstringだしどうしたもんかと…。
正解としては、まずmodelからは基本は上のようなpath表記は呼び出せない。
まずリクエストを得て何かするのはcontrollerの役目。
また静的ならばviewで済ますことも。
どちらにせよmodelでurlが必要なことは上2つに比べると少なそう。
しかもmodelからさっきのpathの表記が呼び出せるとdbにそのurlが書き込めるわけだが、書き込む際はstringとして保存されるため、routes.rbが変わればdbに保存される情報も変わる。しかし昔保存したデータはそのまんまということになる。うん…。
でも、たとえば通販サイトなら商品と商品詳細へのurlは紐付いて欲しい気がする。
こうゆうときどうしてるの??勉強しよ!!
長くなったけどさっきの問題は以下のコードを入れるだけで解決出来ます
include Rails.application.routes.url_helpers # 魔法みたいなpath表記をmodelにも入れておく方法