我是铁杆新手...我做了一个脚手架“评论”,但想要添加另一个字段“评级”,作为整数。我做了以下事情:
在迁移文件中添加了t.integer :ratings
。rake db:migrate
:在views / app / edit,index,new,show
中添加它 app / views / app中的将其添加到json文件中
app / controllers / app中的将其添加到review_params函数中
然而,无论何时我尝试引用(通过显示评论),我都会得到#
的未定义方法“评级”
我需要添加一些东西才能让它成为我的评论支架的一部分。我一直试图弄清楚它5个小时,但仍然没有。当我尝试重新制作一个脚手架并运行rake db:migrate时,我得到一个错误,说数据库已经存在,所以我想只是手动将它添加到我现有的数据库中,如果可能的话,我似乎无法弄清楚它是多么均匀虽然我已经为一个字符串做了一次。
感谢您的任何帮助。
答案 0 :(得分:1)
要向模型添加整数字段,您可以执行以下操作。
rails generate migration AddRatingToReviews rating:integer
这应该通过生成像这样的新迁移文件来处理所有事情。
class AddRatingsToReviews < ActiveRecord::Migration
def change
add_column :reviews, :rating
end
end
然后您可以运行rake db:migrate以将列添加到您的审阅模型。
注意:在完成所有这些操作之前,请删除所有手动更改。如果需要,请使用rake db:rollback,它将回滚您最近的rake db:migrate。
<强>建议强>
如果您是初学者并且不了解MVC,我建议不要使用脚手架,因为您很难知道它在做什么。通过迈克尔哈特尔的这个很棒的教程来快速学习轨道。 http://ruby.railstutorial.org/
* 令人敬畏的宝石*
使用annotate gem直接在name_of_model.rb文件中显示模型中包含的属性。
答案 1 :(得分:1)
rails generate migration AddRatingsToReviews ratings:integer
然后
rake db:migrate
答案 2 :(得分:0)
如果您没有对生成的脚手架进行任何重大更改。
获取视图评分的最简单方法如下:
rake db:rollback VERSION = version_number
使用迁移文件前缀的version_number替换version_number
。
例如:如果你的迁移文件名是20140314190622_create_reviews.rb那么命令应该是
rake db:rollback VERSION=20140314190622
Review
rails d scaffold Review
rails g scaffold Review ratings:integer ....
##添加其他字段代替....