我正在运行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中以使用旧版本。
有人接受挑战吗?
答案 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。
您需要:
更新Gemfile
:
gem 'devise', '3.0.0.rc'
bundle install
。