0

私の Rails 3.2.13 ビルドには次のモデルがあります。データベースにデータを挿入するために使用しようとしています。

  class Financials < ActiveRecord::Base
    #attr_accessible :description, :stock
    attr_accessible :symbol, :cur_price
    sym = Financials.new(:symbol => test, :cur_price => 10)
    sym.save

  end

しかし、コードを実行しようとすると、次のエラーが発生します。

Financials.rb:1:in `': 初期化されていない定数 ActiveRecord (NameError)

SO を確認したところ、同様のエラーが発生した他のユーザーが見つかり、environment.rb にエントリを追加するよう提案されました

以下を environment.rb ファイルに追加しました。

  Inflector.inflections do |inflect|
      inflect.irregular 'financialss', 'financials'
  end

しかし、それは私の問題を解決しました。前もって感謝します

4

1 に答える 1

2

モデルの定義内に新しいオブジェクトを作成しません。createコントローラーのアクションでこれを行う必要があります。

あなたのモデルを考えると:

class Financial < ActiveRecord::Base
  attr_accessible :symbol, :cur_price

  # validations, methods, scope, etc.
end

コントローラーで新しいFinancialオブジェクトを作成し、適切なパスにリダイレクトします。

class FinancialsController < ApplicationController
  def create
    @financial = Financial.new(params[:financial])
    if @financial.save
      redirect_to @financial
    else
      render :new
    end
  end

  def new
    @financial = Financial.new
  end

  def show
    @financial = Financial.find(params[:id])
  end
end
于 2013-05-20T17:38:37.250 に答える