0

こんにちは、私はレールに慣れていないことを知っています。私はASP.Net mvcから来ました

しかし、ほとんどのレールの作業は非常に簡単ですが、.net では簡単な小さな作業がレールに夢中になることがあります。

私はレールアプリを持っていて、クラスを追加しようとしています。コントローラーで使用します。このクラスはデータを保持するためだけのものです。データベースからではありません。私が使用する単純なクラス

そのため、最初に「/libs/assests」フォルダーにクラスファイルを追加しました。次に、そこからファイルをロードするように言う行をapplication.rbファイルに追加する必要があることを読んだので、そうしました..

config.autoload_paths += Dir["#{config.root}/lib", "#{config.root}/lib/**/"]

これはまだ機能しませんでした..なので、クラスファイルを通常のモデルフォルダーに入れました。しかし、まだ機能していないようです。これは私のクラスコードです:

   class Person
    attr_accessor :name, :role

      def initialize(name, role)
         @name = name
         @role = role
      end

     end

そして私のコントローラの1つでこれをやろうとしています:

Person.new("name", "worker");

しかし、私はこのエラーを受け取ります: 初期化されていない定数 MainController::Person

大したことは何ですか?..パブリッククラスをプロジェクトに追加するのはなぜこれほど複雑なのですか? ありがとう

4

2 に答える 2

3

クラスが指定されている .rb ファイルを要求する必要があります。これは、「require」または「require_relative」で実行できます。

http://rubylearning.com/satishtalim/include_other_files_in_ruby.html

于 2012-09-26T11:03:29.200 に答える
1

Rails.root でコンソールを起動します。

rails c

クラス名を参照するだけです:

Person

何が見えますか?

詳しくはわかりませんが、ロード パスが正しくないようです。そこにあるものを見てください:

puts $:.join("\n")

最後に、ブルート フォーシングを実行すると、問題に関する詳細情報が得られる場合があります。

require Rails.root.join("app","models", "person")

これにより、ファイルが手動で読み込まれ、レールの自動読み込みマジックがスキップされます。

于 2012-09-26T11:08:53.617 に答える