尝试提交simple_form时出现此错误:
= simple_form_for(@profile, :url => profile_path, :method => :put) do |f|
= f.error_notification
.container
= f.input :time_zone, :collection => ActiveSupport::TimeZone.all,
:label_method => :to_s, :value_method => :name, :include_blank => false
.actions
= f.button :submit
我将
time_zone
放在了可访问的属性中:class Profiles < ActiveRecord::Base
attr_accessible :time_zone
belongs_to :user
end
并将该列添加到表中:
class AddTimeZoneToProfile < ActiveRecord::Migration
def change
add_column :profiles, :time_zone, :string, :default => "UTC"
end
end
并运行迁移:
$rake db:migrate
== AddTimeZoneToProfile: migrating ===========================================
-- add_column(:profiles, :time_zone, :string, {:default=>"UTC"})
-> 0.0369s
== AddTimeZoneToProfile: migrated (0.0370s) ==================================
由于某种原因,我收到了批量分配错误。关于这里出什么问题的任何线索吗?
更新:
这些是与更新请求一起发送的参数:
{"utf8"=>"✓", "_method"=>"put", "authenticity_token"=>"udKomXmmmOG+7Z4YKR03y9zMg58rnx1EXqE33a+6Shw=", "profile"=>{ "time_zone"=>"Stockholm"}, "commit"=>"Update Profile", "action"=>"update", "controller"=>"profiles"}
谢谢,
最佳答案
多亏了评论者,我发现我有两个模型文件:profile.rb
和profiles.rb
,第一个是我应该拥有的文件,复数文件是一个错误。我在第二个添加attr_accessible
。当然,这是行不通的。
愚蠢的错误总是会产生愚蠢的错误,
谢谢。
关于mysql - 无法批量分配 protected 属性:time_zone,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20751873/