0

私はRailsにかなり慣れていないので、この問題に遭遇しました。私はそれがあなたのプロにとって比較的簡単になるだろうと推測しています。Userという名前のモデルがあり、これにはすべてのユーザー属性が含まれています。リストというモデルも作成しましたが、今は作成したいと思います。私は今、以下のようなことをしてユーザー購入からメソッドcreateを呼び出そうとしています(すべてコンソールで発生します)

sample = User.create(#attributes here)
newlist = sample.List.create(#attributes here)

その後、このエラーが発生します

irb(main):011:0> sample.Lists.new
NoMethodError: undefined method `Lists' for #<User:0x4146750>

以下は、ユーザーとリストのモデルファイルです。

# == Schema Information
#
# Table name: users
#
#  id                 :integer          not null, primary key
#  firstName          :string(255)
#  middleName         :string(255)
#  lastName           :string(255)
#  email              :string(255)
#  facebookexternalId :integer
#  userType           :integer
#  gender             :string(255)
#  description        :string(255)
#  location           :string(255)
#  image              :string(255)
#  password           :string(255)
#  notificationId     :string(255)
#  disabled           :boolean
#  disabledNotes      :string(255)
#  city               :string(255)
#  country            :string(255)
#  joinDate           :string(255)
#  created_at         :datetime         not null
#  updated_at         :datetime         not null

class User < ActiveRecord::Base

  attr_accessible :firstName, :middleName , :lastName ,:email , :facebookexternalId, :gender , :description, :location , :image , :city, :country, :disabled
   email_regex= /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
   validates :firstName , :presence =>true,
                          :length => {:maximum => 45}
   validates :lastName , :presence =>true,
                          :length => {:maximum => 45}
   validates :email , :presence =>true,
                     :format =>{:with => email_regex},
                     :uniqueness => {:case_sensitive => false}
  validates :description, :length => {:maximum => 140}

  has_many :lists
end

リスト

# == Schema Information
#
# Table name: lists
#
#  id          :integer          not null, primary key
#  name        :string(255)
#  user_Id     :integer
#  active      :boolean
#  type        :string(255)
#  description :string(255)
#  roughList   :boolean
#  created_at  :datetime         not null
#  updated_at  :datetime         not null
#

class List < ActiveRecord::Base
  belongs_to :user
end
4

1 に答える 1

3

リストは複数形で使用する必要があります。これは次のようになります。

sample_user.lists.create..。

また

sample_user.lists.new

:has_manyで名前を付けたように

于 2012-08-14T22:05:36.933 に答える