耙子迁移中止

时间:2013-07-01 04:11:05

标签: ruby-on-rails ruby ruby-on-rails-3 rubygems rake

我正在运行Ruby 2.0.0并且我正确安装了它。刚刚加载了一个gem'depaise',当我尝试迁移我的数据库更改时,它不起作用:

  

$ rake db:migrate   耙子流产了!   将attr_accessible从Rails中提取到gem中。请使用新推荐的params保护模型(strong_parameters)或将protected_attributes添加到您的Gemfile中以使用旧版本。

然后,在另一篇Stackoverflow帖子之后,他们建议安装Bundler。我成功地做到了这一点:

  

$ bundle exec rake db:migrate   耙子流产了!   将attr_accessible从Rails中提取到gem中。请使用新推荐的params保护模型(strong_parameters)或将protected_attributes添加到您的Gemfile中以使用旧版本。

有人接受挑战吗?

2 个答案:

答案 0 :(得分:1)

看起来你正在尝试使用Rails 4.0.0beta,这不是(恕我直言)新手的最佳选择。您最好切换回Rails 3 *并获得记录良好,经过测试的摇滚环境的所有优势。 如果你仍然决定坚持使用Rails 4 ......之前没有严格的规则来处理批量分配。 Rails 4使用强参数对其进行标准化,该参数已合并到rails core中。因此,你要做的就像:

# controllers/my_controller.rb
def create
    @app = MyApp.new(my_params)
  if @app.save
    redirect_to app_path(@app)
  else
    render :new, alert: 'There was a problem'
  end
end

private

def my_params
  params.require(:app).permit(:title, :password)
end

现在,分配逻辑被封装在一个私有方法中,以允许某些值充当参数。

答案 1 :(得分:0)

请使用支持Rails 4的Devise 3.0.0.rc。

您需要:

  • 还原更改并删除旧版Devise生成的文件。
  • 更新Gemfile

    gem 'devise', '3.0.0.rc'
    
  • 运行bundle install
  • 重新生成Devise初始化程序和迁移。