我在我的项目中有一个作者模型,并希望在表单中添加另一个字段,以便作者可以将他们的名字用作电子邮件和头像,我希望作者也能够同时插入一些内容。
1,当我在表格中添加另一个字段时,确定无误
2,在模式文件中添加t.string“content”吗?因为这没用(我跑了rake db:migrate)
3,我在作者的迁移文件中添加了t.string:content(这已经停留在那里但没有做任何事情)
4,我应该进入ruby控制台并以某种方式添加信息,以便数据库知道内容字段吗?
我只想在数据库中添加另一个字段而程序不返回:
undefined method `content' for Author:0x00000100c5cc08
Extracted source (around line #24):
21: div
22: div class="field"
23: <%= f.label :content %>
24: <%= f.text_area :content %>
25: div
26: div class="actions"
27: <%= f.submit %>
Trace of template inclusion: app/views/authors/new.html.erb
Rails.root: /Users/r/Sites/RailsProjects/as
谢谢
答案 0 :(得分:0)
您不应该直接编辑schema.rb文件 - 它是从您的数据库自动生成的。
向迁移文件添加t.string :content
将以您希望的方式修改模型。但是你运行了迁移吗?使用rake db:rollback和rake db:migrate重新应用迁移(假设它是你集合中的最后一个)。当你这样做时,请注意你的作者数据丢失。
或者,您可以创建一个新的迁移来添加列,如下所示:
def self.up
add_column :authors, :content, :string
end
def self.down
remove_column :authors, :content
end
然后运行rake db:migrate。
答案 1 :(得分:0)
我认为最好的方法是添加该字段进入命令提示符并输入如下
ruby脚本/生成迁移AddContentToAuthor内容:字符串
**然后按回车键。之后,您需要完成数据库迁移,您可以按照以下方式执行此操作
rake db:migrate **然后按Enter键,您的代码将正常工作