无法在Rails中分配受保护的属性

时间:2013-10-03 12:13:03

标签: ruby-on-rails

控制器:

class HorsesController < ApplicationController
    require 'csv'

    def index
        @horses = Horse.all
    end

    def import
        Horse.import(params[:file])
        redirect_to root_path
    end
end

模型:

class Horse < ActiveRecord::Base
  attr_accessible :name, :place

  def self.import(file)
    CSV.foreach(file.path, headers: true) do |row|
        Horse.create! row.to_hash       
    end
  end
end

我有一个CSV文件,其中包含两列数据标题名称和位置。当我尝试导入文件时,出现错误消息:Can't mass-assign protected attributes: place

我似乎接受:name 罚款,但出于某种原因无法使用:place ???

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:2)

您的csv文件格式为name, place而不是name,placeplace开头被视为<space>place而不是place,这会导致rails抛出该错误。