0

私はレールで axlsx を使用しており、コレクション内の要素の数に応じて列を設定できるようにしたいと考えています。

私のコントローラーで:

 @task_categories = TaskCategories.all

私の xlsx.axlsx ビューでは、次のようなことをしたいと思います:

 sheet.merge_cells("I2:#{'I'.next(@task_categories.count)}2")

しかし、配列エラーへの明示的な変換はありません。

.nextbyをループするヘルパーを書くことができますがcount、これは十分に一般的な問題であり、私が見逃している組み込みのショートカットが必要なようです。

編集:

私は動作するヘルパーを書きました:

def increment_letter(l, c)
  (1..c).map { l = l.next }
  l
end

呼び出しで:

 sheet.merge_cells("I2:#{increment_letter('I', @task_categories.count)}2")

しかし、私はまだ The Rails Way™ を探しています。

4

2 に答える 2

1

これは引用の問題のように見えます

"I2:#{'I'.next(@task_categories.count)}2"

'あなたの周りの一重引用符の使用に注意してくださいI

%Q{...}それ以外の場合は、読みやすいように見える場合にも使用できます

%Q{I2:#{"I".next(@task_categories.count)}2}

最後に、String#next引数を取らないので、このような結果になります

%Q{I2:#{"I".next}2} #=> "I2:J2"
于 2015-08-26T16:44:42.173 に答える