【问题标题】:Import CSV to database using Rails 4.0.3使用 Rails 4.0.3 将 CSV 导入数据库
【发布时间】:2014-03-19 08:05:21
【问题描述】:

我是 Ruby on Rails 的新手。

我使用的是 Rails 4.0.3、Ruby 1.9.3。

我尝试导入CSV file from the sample "396-importing-csv-and-excel-master" 但它正在抛出错误。

错误:

attr_accessible 不再使用

并建议使用 Strong 参数。任何人都可以帮助我使用强参数导入 CSV 吗?

【问题讨论】:

  • 我建议您阅读该 Railscast 的 cmets。你会在那里找到答案。如果您有更具体的问题,请回来并在此处提问。
  • 奇怪的特定标签....
  • @JeevanRoydsouza,不要random 代码格式添加到words,您thinkimportant。它使事情难以阅读。

标签: ruby-on-rails ruby-on-rails-4 attr-accessible


【解决方案1】:

假设您正在导入任务。对强参数使用这种方式

def self.import(file)    
  CSV.foreach(file.path, headers: true) do |row|
    task = find_by_id(row["id"]) || new
    parameters = ActionController::Parameters.new(row.to_hash)
    task.update(parameters.permit(:id,:name))
    task.save!
  end
end

【讨论】:

  • 我知道这个很旧,但它很有帮助。这里让我感到困惑的是,为什么导入代码会放在模型中而不是控制器中,而其他操作会根据用户输入创建或更新?
【解决方案2】:

在 rails 4 中不再使用 attr_accessible。在 rails4 中就像 params.require(:person).permit(:name, :age)

我觉得this可以帮到你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 2017-09-13
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    相关资源
    最近更新 更多