在尝试使用 - collection> rails generate scaffold Items name:string subcategory_id:integer users_id:integer
生成新的脚手架时,我错过了'users_id:integer'以及我可以在其上使用此属性而不是再次运行完整命令的方式。
由于
答案 0 :(得分:4)
不是真的。
如果您尚未向现有脚手架添加任何新内容(并且只是担心必须删除/重新创建所有这些文件),那么您可以先运行destroy然后重新创建,例如:
rails destroy scaffold Items
rails generate scaffold Items name:string subcategory_id:integer users_id:integer
答案 1 :(得分:4)
如果您还没有推送迁移,可以编辑db / migrate / 201112 * create_items.rb并添加以下行:
add_column :items, :users_id, :integer
如果您已经推送了迁移,请创建另一个:
rails generate migration AddUsersIdToItems users_id:integer
rake db:migrate
然后你必须手动编辑脚手架代码:
vi app/views/items/_form.html.erb
复制< div>对于subcategory_id并将其更改为:users_id
<div class="field">
<%= f.label :subcategory_id %><br />
<%= f.number_field :subcategory_id %>
</div>
<div class="field">
<%= f.label :users_id %><br />
<%= f.number_field :users_id %>
</div>
或者,如果你正在运行git,你可以运行“git checkout”。在运行第一个脚手架生成器后,这将撤消所有更改,然后您可以再次运行它。
答案 2 :(得分:0)
这是一个非常古老的问题,但在我创建自己的发电机之后,另一个答案就在我身上。如果由于某种原因,模型的属性发生了变化,无论是通过迁移添加还是删除了属性,并且您希望在脚手架视图中反映这一点,只需运行您想要的所有属性的脚手架,也可以使用 - 跳过迁移选项。出现提示时,选择覆盖要覆盖的视图。
如果您忘记添加属性,请使用迁移添加它(rails g migration AddXXXToYYY field:type)然后再次运行脚手架,就像我上面解释的那样。
此解决方案适用于遇到此问题的任何新Rails用户。每当数据库发生变化时,手动更改视图都会很有趣。