【问题标题】:Rails Unpermitted parameters for selectRails Unpermitted 参数选择
【发布时间】:2013-04-25 08:07:48
【问题描述】:

我正在尝试添加包含字符串列表的记录。

型号:

class Startup < ActiveRecord::Base
  before_validation(:on => :create) do
    self.mal = false
  end
  serialize :category
  attr_accessible :name, :url, :description, :category, :creator, :mal, :founded
end

但我的日志中仍然出现此错误:

Started POST "/startups" for 127.0.0.1 at 2013-04-25 05:05:00 -0300
Processing by StartupsController#create as JS
  Parameters: {"utf8"=>"✓", "startup"=>{"name"=>"test", "url"=>"http://startupcrawler.com", "category"=>["", "Analytics", "Fitness", "Gaming"], "founded(1i)"=>"2013", "founded(2i)"=>"4", "founded(3i)"=>"1", "description"=>"fdsa"}, "commit"=>"Create Startup"}
Unpermitted parameters: category
  [1m[35m (0.2ms)[0m  BEGIN
  [1m[36m (0.2ms)[0m  [1mROLLBACK[0m
Completed 500 Internal Server Error in 85ms

我做错了什么?为什么类别不会序列化?

编辑:

刚刚发现这种方法已被弃用,我正在使用 Rails 4...我应该改用什么?

编辑 2:

现在在日志中得到这个:

Started POST "/startups" for 127.0.0.1 at 2013-04-25 05:30:33 -0300
Processing by StartupsController#create as JS
  Parameters: {"utf8"=>"✓", "startup"=>{"name"=>"blah", "url"=>"http://startupcrawler.com", "category"=>["", "Fitness"], "founded(1i)"=>"2013", "founded(2i)"=>"4", "founded(3i)"=>"1", "description"=>"fdsa"}, "commit"=>"Create Startup"}
  [1m[36m (0.2ms)[0m  [1mBEGIN[0m
  [1m[35m (0.5ms)[0m  ROLLBACK
  Rendered startups/_form.html.erb (16.1ms)
  Rendered startups/new.html.erb within layouts/application (18.9ms)
Completed 200 OK in 128ms (Views: 29.9ms | ActiveRecord: 0.8ms)

但没有创建新记录(出于某种原因回滚)。

我从模型中删除了serialize :category。这现在在我的控制器中:

def startup_params
      params.require(:startup).permit(:name, :url, :added, :founded, :mal, :creator, :description, {:category => []})
end

【问题讨论】:

    标签: ruby-on-rails strong-parameters


    【解决方案1】:

    出于这个原因,Strong parameters 被内置到 Rails 4 中。

    【讨论】:

    • 我会这样做吗? params.permit(:name, :url, :description, :category =&gt; [], :creator, :mal, :founded) 而不是 attr_accessible?我只包含gem 'attr_accessible 以满足仍在使用它的设计
    • Devise 有一个 rails4 分支,我认为它与尚未发布的 Rails 4 兼容。
    • 酷,我可能会检查一下。我现在收到 200 条回复,但我的记录没有完成我在上面添加了编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多