Tag: 强参数

禁止的属性在Rails 4遇到一种情况,在早期版本的Rails中会使用attr_accessible的情况下出现错误

随着最近升级到Rails 4,使用类似下面的代码更新属性不起作用,我得到一个ActiveModel::ForbiddenAttributes错误: @user.update_attributes(params[:user], :as => :admin) 用户在模型中具有以下attr_accessible行: attr_accessible :role_ids, :as =>admin # or any attribute other than :role_ids contained within :user 你如何在Rails 4中完成相同的任务?

如何让ActiveAdmin使用强参数?

更新:这个问题在ActiveAdmin中已经有了一个解决scheme。 正如Joseph所说,ActiveAdmin文档现在包含了这些信息,但是这里的答案是为使用旧版ActiveAdmin的人提供的。 当Rails 3.2.8中的ActiveAdmin 0.5.0使用strong_parameters 0.1.4时,如果您使用的模型正在使用StrongParameters,包括: include ::ActiveModel::ForbiddenAttributesProtection 那么如果您尝试创build/编辑logging,则会在日志中出现以下错误: ActiveModel::ForbiddenAttributes (ActiveModel::ForbiddenAttributes)

Rails 4 – 强大的参数 – 嵌套的对象

我有一个非常简单的问题。 但到目前为止还没有find解决办法。 所以这里是我发送给服务器的JSONstring: { "name" : "abc", "groundtruth" : { "type" : "Point", "coordinates" : [ 2.4, 6 ] } } 使用新的许可证方法,我有: params.require(:measurement).permit(:name, :groundtruth) 这不会引发错误,但创build的数据库条目包含null而不是ground_truth值。 如果我只是设置: params.require(:measurement).permit! 一切都按预期得到保存,但当然,这会杀死强参数提供的安全性。 我已经find解决scheme,如何允许数组,但不是一个使用嵌套对象的例子。 这一定是可能的,因为它应该是一个很常见的用例。 那么它是怎样工作的?

如何允许具有强参数的数组

我有一个正常运行的Rails 3应用程序使用has_many:通过关联不是,因为我作为一个Rails 4应用程序重新制作,让我从Rails 4版本的相关模型中保存id。 这两个版本的三个相关模型是相同的。 Categorization.rb class Categorization < ActiveRecord::Base belongs_to :question belongs_to :category end Question.rb has_many :categorizations has_many :categories, through: :categorizations Category.rb has_many :categorizations has_many :questions, through: :categorizations 在这两个应用程序中,类别ID都会像这样传递到创build操作中 "question"=>{"question_content"=>"How do you spell car?", "question_details"=>"blah ", "category_ids"=>["", "2"], 在Rails 3应用程序中,当我创build一个新问题时,它会插入到问题表中,然后插入到分类表中 SQL (82.1ms) INSERT INTO "questions" ("accepted_answer_id", "city", "created_at", "details", "province", "province_id", "question", "updated_at", "user_id") […]