我正在尝试创建一个日志,在journal_entries
调用索引视图时列出登录用户的日志。
我已经为用户注册、登录/注销身份验证安装了 Devise gem。
我创建了一个模型,JournalEntries
其中包括日期、字符串和文本字段。
创建数据库,rake db:create
然后迁移后,rake db:migrate
我试图在 journal_entries/index 视图中列出用户的日记条目。通过脚手架派生的默认视图列出了 ALL USERS journal_entries。这并不能成为一本出色的日记 - 您可以在其中查看所有其他用户的条目。
在我的研究中,我意识到我在journal_entries
表中没有引用用户表的字段。
我在下面创建了一个迁移节目:
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 模型以包含 belongs_to 和 has_many 关联 - 起初我以为这就是我必须做的,并且不知何故数据库会选择它,但它没有......)
这成功地将外键 - user_id 添加到 journal_entries 表中,我以为我很清楚。
现在发生的事情是创建 journal_entry 时 - user_id 列是空白的 - 那里没有填充任何信息......?我通过在本地机器上登录 Postgres 验证了这一点。
任何帮助将不胜感激!