によってデプロイのライブアプリケーションを更新していない(それアプリのURLがより説明し、ユーザーフレンドリーになるように。新しくインストールされたRubyの宝石Friendly_Idは、私がFriendly_id宝石を使用することが私のアプリに2つのモデルを持っているHerokuの
政治家のモデル:
class Politician < ActiveRecord::Base
has_many :interests
has_many :issues, through: :interests
validates :name, :political_party, :title, :slug, presence: true
extend FriendlyId
friendly_id :name, use: :slugged
end
と発行モデル:
class Issue < ActiveRecord::Base
has_many :interests
has_many :politicians, through: :interests
validates :name, :slug, :keywords, presence: true
extend FriendlyId
friendly_id :name, use: :slugged
end
バックストーリー:アプリが最初ではなかったです宝石をインストールしてHerokuにプッシュ。私はアプリを作り、それをHerokuに配備し、Friendly_IDの宝石を見つけました。それを発見した後、私はGemfileに上記の宝石をインストールし、前述のモデルとコントローラを微調整し、私のローカルサーバー上で美しく動作します。
私はすべて設定されていると思った。私はHerokuに自分のデータを再播種し、それをプッシュしましたが、変更はライブサイトには表示されません。そして、その代わりに、そのように各モデルのslugフィールドを使用する:
www.mysite.com/politicians/barack-obama
www.mysite.com/issues/economy
私はまだ参照してください。
www.mysite.com/politicians/7(バラク・オバマ大統領の政治家のID番号)
www.mysite.com/issues/3( "経済" の問題のためのID番号)
その他のバックストーリー:
StackOverflowでthe gem's docsとさらにa few questions hereを見て、既存のアプリケーションに宝石を追加すると、このコードを、友人の宝石が適用される各モデルのHerokuコンソールで実行するTo:その後、
heroku run console
そして:動作しませんでした
Politician.find_each(&:save)
Issue.find_each(&:save)
: - /私のアプリはまだセマンティックフレンドリーなURLで更新されません。また、私は最初に宝石のヘルパーモジュールを使用したことを付け加えておきます。
friendly_id :name, use: [:slugged, :history]
を誰かon this StackOverflow threadは「ヘルパー」キーワードを削除するために述べたように、それはHerokuの上で更新するからそれを防止することができるので、:それで、私が持っていた(その後、保存した後、それを再度追加します?)。私はそれをまだ試していませんが(保存した後に "ヘルパー"キーワードを追加しなおしましたが、何かを試してもう一日無駄にする前に質問をしていました。
heroku dbを移行して「スラグ」列を追加しましたか?あなたのローカル:プロダクション環境とローカル:開発環境のすべてで働いていますか? – eeeeeean
はい、ノートパソコンのサーバー上でアプリをローカルに実行すると、すべてが完璧に機能しています。 「ローカル:プロダクション環境」と「ローカル:開発」との違いは何ですか? –
そして、私は私のheroku dbを次のコマンドで移行します:heroku run rake db:migrate –