0

このような構造体を定義するとしましょう

 Struct.new("DefFgbs", :value, :condition, :school, :year)

私はこの警告を受けています:

warning: redefining constant Struct::DefFgbs

クラスの場合と同様に、1 つのファイルで「DefFgbs」を定義したいので、「DefFgbs」オブジェクトが必要になるたびに警告が表示されることはありません。これどうやってするの?ActiveRecord のないモデルを定義するためのより良い代替手段はありますか?

4

2 に答える 2

1

クラスで行うように、1 つのファイルで「DefFgbs」を定義したいのですが、

だから、それをしてください。ファイルに入れて、 にドロップしapp/modelsます。モデルが から継承する必要はまったくありませんActiveRecord::Base:

# app/models/def_fgbs.rb

attr_accessor :value, :condition, :school, :year

class DefFgbs
  def initialize(value, condition, school, year)
    @value, @condition, @school, @year = value, condition, school, year
  end
end
于 2013-06-13T15:58:49.200 に答える
1

@meagerが提案するように、クラスをファイルに作成し、フォルダー(モデル用に保存したい)に配置するのではなく、Railsプロジェクトの下の好きなmodelsフォルダーに配置します. 次に、ファイルに次の内容を含めます。app/classes/def_fgbs.rblib/classes/def_fgbs.rbconfig/application.rb

config.autoload_paths << "#{::Rails.root.to_s}/lib/classes"

また

config.autoload_paths << "#{::Rails.root.to_s}/app/classes"

そこからピックアップする必要があります。

于 2013-06-13T16:30:13.987 に答える