Контроллер:
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 ???
Любая помощь приветствуется
0
Kane
3 Окт 2013 в 16:13
1 ответ
Лучший ответ
Ваш CSV-файл отформатирован как name, place
вместо name,place
. place
читается как <space>place
вместо place
, что заставляет рельсы выдавать эту ошибку.
2
kobaltz
3 Окт 2013 в 16:21
Спасибо! Я трачу часы на устранение этой проблемы для той же самой проблемы. Это одна из тех сводящих с ума маленьких ошибок, которые вы узнаете один раз и, надеюсь, никогда не забудете. Оцените ответ.
– acoustic_north
27 Янв 2014 в 03:45
Похожие вопросы
Связанные вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.
name, place
вместоname,place
? Мне интересно, читается ли это место как<space>place
вместоplace
.