journal_entries
インデックス ビューが呼び出されたときに、ログインしているユーザーが一覧表示されるジャーナルを作成しようとしています。
ユーザーのサインアップ、ログイン/ログアウト認証用にDevise gemをインストールしました。
JournalEntries
日付、文字列、およびテキスト フィールドを含むモデル を作成しました。
データベースを作成してrake db:create
から移行した後、rake db:migrate
- journal_entries/index ビューでユーザーのジャーナル エントリを一覧表示しようとしました。スキャフォールディングによって得られたデフォルトのビューは、すべてのユーザーのジャーナルエントリを一覧表示します。これは、他のすべてのユーザーのエントリを見ることができる優れたジャーナルにはなりません。
私の調査ではjournal_entries
、users テーブルを参照するフィールドがテーブルにないことに気付きました。
以下の移行ショーを作成します。
class AddForeignKeyToJournalEntries < ActiveRecord::Migration
def up
change_table :journal_entries do |t|
t.references :user
end
#add a foreign key
execute <<-SQL
ALTER TABLE journal_entries
ADD CONSTRAINT fk_journal_entries_users
FOREIGN KEY (user_id)
REFERENCES users(id)
SQL
end
def down
execute <<-SQL
ALTER TABLE journal_entries
DROP FOREIGN KEY fk_journal_entries_users
SQL
end
end
(また、users.rb と journal_entries.rb モデルを変更して、begs_to と has_many の関連付けを含めました。最初は、これだけで十分だと思っていました。データベースはこれを取得するはずでしたが、そうではありませんでした...)
これにより、外部キー - user_id が journal_entries テーブルに正常に追加されました。
現在起こっていることは、journal_entry が作成されたときです - user_id 列は空白です - そこには情報が入力されていません....? ローカル マシンで Postgres にログインして、これを確認しました。
どんな助けでも大歓迎です!