Ruby on Rails:StatusesController中的NameError #create

时间:2015-01-21 20:09:29

标签: ruby-on-rails ruby ruby-on-rails-4

嗨我收到此错误:StatusesController中的NameError #create 未初始化的常量状态::名称

我不确定错误在哪里,但它说:app / controllers / statuses_controller.rb:27:在`create'

这是我在github上的项目https://github.com/Jigmet/Treebook

3 个答案:

答案 0 :(得分:2)

你有

params.require(:status).permit(:name, :content)

但您的db / schema.rb中没有列name,因此您的模型中没有该字段。

您需要通过迁移添加列,或将其从参数中删除。

错误消息表示顺便看一下状态控制器的第27行。

答案 1 :(得分:0)

您删除了列" name"在名为20150121142351_add_user_id_to_statuses.rb

的迁移文件中

在该文件中,您删除了这样的列:

 remove_column :statuses, :name

再次创建该字段,您的问题将得到解决

答案 2 :(得分:0)

你的意思是摆脱:name列吗?如果你这样做,那就改变一下:

params.require(:status).permit(:name, :content)

到此:

params.require(:status).permit(:content)

如果您仍然需要:name列,那么

rails生成迁移AddNameToStatuses 在迁移文件中,编写以下内容:

def change
    add_column :statuses, :name, :string
end

执行此操作后,运行:rake db:migrate,重启服务器,你应该好好去!