has_many:throughアソシエーションに問題がありu1.UsersProfileAttributes.find_by_ProfileAttribute_name("icq")
ます。メソッドを呼び出すことができません。railsは、このメソッドが存在しないことを意味します。この方法u1.UsersProfileAttributes.find_by_ProfileAttribute_id(3)
は正しく機能します。u1はユーザーオブジェクトです。私の協会は大丈夫のようですので、何が問題なのかわかりません。見てください:
class ProfileAttribute < ActiveRecord::Base
has_many :UsersProfileAttributes
has_many :users, :through => :UsersProfileAttributes
end
class User < ActiveRecord::Base
has_many :UsersProfileAttributes
has_many :ProfileAttributes, :through => :UsersProfileAttributes
end
class UsersProfileAttribute < ActiveRecord::Base
belongs_to :user
belongs_to :ProfileAttribute
end
私の移行ファイル:
class CreateProfileAttributes < ActiveRecord::Migration
def self.up
create_table :profile_attributes do |t|
t.string :name
t.integer :profile_group_id
t.timestamps
end
create_table :users_profile_attributes do |t|
t.integer :user_id
t.integer :ProfileAttribute_id
t.string :value
end
end
def self.down
drop_table :profile_attributes
drop_table :users_profile_attributes
end
end