引数の数が間違っています(3が与えられ、1..2が期待されます)
Aug 24 2020
Rails 6は初めてですが、上記のエラーが発生します。以下のコードをチェックして、これから抜け出すのを手伝ってください。ありがとう!
has_many :coaches, ->{where('max_unit > 0 and active = 1').order('trim(full_name)')}, ->{select((Account.column_names - ['photo_file']).map { |column_name| "`accounts`.`#{column_name}`"})}, :through => :qualifications
バックトレース:ArgumentError(引数の数が間違っています(3が与えられ、1..2が期待されます)):
app / models / language.rb:9:
<class:Language>' app/models/language.rb:1:in
in'app / models / account.rb:142:inmanage_substitutions' app/controllers/extranet/homes_controller.rb:11:in
index '
回答
1 maxpleaner Aug 24 2020 at 11:40
ここでは、2つのラムダを別々の引数として指定しています。
最初は
->{where('max_unit > 0 and active = 1').order('trim(full_name)')}`
2番目は
->{select((Account.column_names - ['photo_file']).map { |column_name| "`accounts`.`#{column_name}`"})}
これは無効です。2つのラムダを1つに組み合わせる必要があります。
-> {
where('max_unit > 0 and active = 1').
order('trim(full_name)').
select((Account.column_names - ['photo_file']).map { |column_name| "`accounts`.`#{column_name}`"})
}
これもチェックする必要があります。これを行うには、よりクリーンな方法になる可能性があります。 https://stackoverflow.com/a/33939206/2981429