簡體   English   中英

在Rails中有條件導入CSV的語法

[英]Syntax to conditional import CSV in Rails

以下導入方法需要處理設置為nil的輸入變量

def self.import(file, unit_id, profit_center_column [...]
  CSV.foreach(file.path, :col_sep => "\t", headers: true, skip_blanks: true) do |row|
    begin
     Asset.create(
        unit_id: unit_id,
        profit_center_id: row[profit_center_column] unless profit_center_column.nil?,
        [...]

啟動此方法的控制器在哪里定義

params[:profit_center_column] = @unit.profit_center_column

其中@unit.profit_center_column = nil

我遇到了意想不到的syntax error, unexpected modifier_unless, expecting ')' unless syntax error, unexpected modifier_unless, expecting ')' unless在使用之前我從未用過括號, unless我希望在這里使用逗號來清楚地分隔語句。 語法哪里弄亂了?

Rails 4.2.4和Ruby 2.3.4正在使用中。

注意,我也嘗試過if語句,但是導致加載隨機的xxx_column信息。

您正在將一個條件傳遞給Asset的構造函數。 如果您需要解決此問題,建議您首先使用確保不為nil的值初始化Asset ,然后再對其余屬性使用設置器:

asset = Asset.new(
    unit_id: unit_id,
    ....

asset.profit_center_id = row[profit_center_column] unless profit_center_column.nil?
asset.save

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM