2013-10-03 6 views
0

Controller:Брус масса Присвоить защищенные атрибуты в 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

Я, кажется, принимает : имя штраф, но по какой-то причине не будет работать с : место ???

Любая помощь оценили

+4

Просто интересно, ваш файл csv отформатирован как 'name, place' вместо' name, place'? Мне интересно, начнется ли это место как ' place' вместо' place'. – kobaltz

+0

GAH! да это ... спасибо mate – Kane

+0

Lol. Раньше у меня это случалось. Оккамская бритва в лучшем состоянии. – kobaltz

ответ

2

Ваш файл CSV отформатированные как name, place вместо name,place. place начинается с <space>place вместо place, что делает рельсы забрасыванием этой ошибки.

+0

Спасибо! Я трачу часы на устранение этой проблемы по той же самой проблеме. Это одна из тех безумных ошибок, которые вы узнаете один раз и, надеюсь, никогда не забудете. Цените ответ. –

Смежные вопросы