これはかなり単純な Rails 4 の状況です。モデル イントラネット has_many アクティビティ。いくつかのイントラネットに十分な記録を持つ活動が存在します。Current_intranet.activities.size は 69 レコードを返します。ただし、いずれかのレコードにアクセスしようとすると、「出力エラー:<ArgumentError: wrong number of arguments (1 for 0)"
引数を渡していないにもかかわらず」が表示されます。次のすべてがそのエラーで失敗します。
Current_intranet.activities.first
Activity.where(intranet_id: 1).first
Activity.where(:intranet_id => 1).first
Activity.where{intranet_id.eq 1}.first
All of the above with [0] instead of first
他のモデルでも問題ありません。ご提案をいただければ幸いです。前もって感謝します。
定義されたスコープはありません。コードは次のとおりです。
class Activity < ActiveRecord::Base
acts_as_capitalized
# activities created during intranet creation.
DEFAULT_ACTIVITIES = { 'Document Preparation' => 'general income', 'No Charge' => 'general income'}
# static activity names that can not be deleted.
STATIC_ACTIVITY_NAMES = [ 'Document Preparation','No Charge']
before_destroy :check_if_used
before_destroy :cannot_delete_static_activities
belongs_to :created_by_user, :class_name => "User", :foreign_key => "created_by"
belongs_to :updated_by_user, :class_name => "User", :foreign_key => "updated_by"
belongs_to :intranet
belongs_to :chart_of_account
has_many :activity_rates, :dependent => :destroy
has_many :event_type
has_many :billings do
def find_by_name(name)
(find :all, :conditions => ["activity.name = ?",name])
end
end
has_many :document_templates, :foreign_key => "billing_activity_id"
validates_presence_of :intranet_id, :name, :chart_of_account_id
validates_uniqueness_of :name, :scope => :intranet_id