【问题标题】:Helper method running afoul of Mass Assignment security与 Mass Assignment 安全性冲突的辅助方法
【发布时间】:2011-07-26 01:36:05
【问题描述】:

我通常会这样写:

class Person < ActiveRecord::Base
  attr_accessible :first_name, :last_name

  def name
    "#{ first_name } #{ last_name }"
  end

  def name=(str)
    first, last = str.split(' ', 2)
    write_attribute :first_name, first
    write_attribute :last_name, last
  end
end

这允许您执行 Person.new(:name =&gt; "Adam Lassek") 而不是在控制器中拆分它。

在 Rails 3.1.0.rc4-5 中,这给了我WARNING: Can't mass-assign protected attributes: name 错误。

这曾经有效。发生了什么变化?

【问题讨论】:

  • 我认为你只需要将名称添加到 attr_accessible
  • @Matt 试过了;没用。
  • @Matt 从头开始​​;看起来它确实有效,它不是因为不相关的原因而被应用的。
  • @Matt 在下面添加一个答案,以便我标记它
  • 酷。在下面添加为简短答案。

标签: ruby-on-rails ruby-on-rails-3.1 mass-assignment


【解决方案1】:

将名称添加到 attr_accessible

【讨论】:

    猜你喜欢
    • 2010-10-31
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2018-06-21
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多