手动将整数字段添加到rails scaffold

时间:2014-03-16 22:51:57

标签: ruby-on-rails migrate scaffold

我是铁杆新手...我做了一个脚手架“评论”,但想要添加另一个字段“评级”,作为整数。我做了以下事情:

在迁移文件中添加了t.integer :ratingsrake db:migrate

在spec文件夹中

:在views / app / edit,index,new,show

中添加它 app / views / app中的

将其添加到json文件中

app / controllers / app中的

将其添加到review_params函数中

然而,无论何时我尝试引用(通过显示评论),我都会得到

  

的未定义方法“评级”

我需要添加一些东西才能让它成为我的评论支架的一部分。我一直试图弄清楚它5个小时,但仍然没有。当我尝试重新制作一个脚手架并运行rake db:migrate时,我得到一个错误,说数据库已经存在,所以我想只是手动将它添加到我现有的数据库中,如果可能的话,我似乎无法弄清楚它是多么均匀虽然我已经为一个字符串做了一次。

感谢您的任何帮助。

3 个答案:

答案 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文件中显示模型中包含的属性。

https://github.com/ctran/annotate_models

答案 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 .... ##添加其他字段代替....