2013-10-03 22 views
0

控制器:廣東話質量分配保護屬性

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,而不是name,place

+4

想知道,你的csv文件格式化爲'name,place'而不是'name,place'嗎?我想知道這個地方是否開始讀爲' place'而不是'place'。 – kobaltz

+0

GAH!是的,這是...感謝隊友 – Kane

+0

大聲笑。我以前曾遇到過這種情況。奧卡姆的剃刀在其最好的。 – kobaltz

回答

2

CSV文件。 place開始讀取爲<space>place而不是place,這會導致導致該錯誤。

+0

謝謝!對於完全相同的問題,我花了幾個小時來解決此問題。這是你曾經學習過並且希望永遠不會忘記的那些令人生厭的小錯誤之一。欣賞答案。 –

相關問題