0

私は単純な構造だと思うものを持っています:

class GroupEvent < ActiveRecord::Base
  attr_accessible :user_id, :title, :description, :identifier, :start_date, :end_date, :time_zone, :url, :capacity, :info_url, :logo_url, :logo_ssl_url, :status

  has_one :event_venue
  has_one :event_organizer
  has_one :event_ticket
  has_one :event_condition
  belongs_to :user
end

class User < ActiveRecord::Base
  attr_accessible :email, :name, :password, :password_confirmation
  has_secure_password

  has_many :group_events
  ...
end

しかし、Railsコンソールで実行すると

@user = User.new
@event = @user.group_events.build

エラーが発生します:ActiveRecord :: InverseOfAssociationNotFoundError:group_events(GroupEventの:user)の逆アソシエーションが見つかりませんでした。

更新:ユーザーとGroupEventを相互に表示させることができません。GroupEvent.newとEventVenue.newは新しいオブジェクトを作成し、

@event = GroupEvent.new
@venue = @event.build_event_venue

必要に応じて、@event.event_venueオブジェクトを作成します。(私はまだそれを混乱させていますが

@event.event_venue.build

NoMethodErrorを返します:nil:NilClassの未定義のメソッド `build'。)

4

1 に答える 1

0

更新:現在は機能しています。

@event = @user.group_event.build 

新しいGroupEventオブジェクトを作成します。後に来る人のために、私は謝罪します、私は私が何をしたのか分かりません。上記のコードはすべて同じように見えます。変更を加えるたびにコンソールを再起動する必要があることに気づいていませんでしたが、コンソールを再起動すると問題が解決したようです。

長引く質問が私を悩ませています。@ user.build_group_eventと@user.group_event.buildの両方が同じ結果(GroupEventオブジェクト)を生成しますが、他のクラスの場合、@ event.build_event_venueはオブジェクトを生成しますが、@ event.event_venue.buildはまだ「NoMethodError:undefined」を返しますnil:NilClass"のメソッド`build'。私はそれを理解することができません。しかし、私は動作するコードを持っているので、それについてあまり大したことはしません。

ご協力ありがとうございました。

于 2012-05-31T10:26:07.630 に答える