我有2個模型:Rails ActiveRecord Association問題
Performance和PerformanceType以及2個相應的表格:performance和performance_types。
表演中有一個外鍵列「performance_type_id」。
如何使用ActiveRecord關聯從另一個表中獲取performance_type_id的名稱?
class Performance < ActiveRecord::Base
has_one :users
has_one :rates
has_one :performace_types
end
class PerformanceType < ActiveRecord::Base
belongs_to :performances
end
有了上面的代碼我嘗試做的到控制檯:
myvar = Performance.first
myvar.performance_types
NoMethodError: undefined method `performance_types' for #<Performance:0x007f9694b3e700>
我知道這個問題是我的活動記錄協會的不好解釋,誰能幫助我?
關於。
從創建到外鍵添加遷移...
class CreatePerformances < ActiveRecord::Migration
def change
create_table :performances do |t|
t.timestamps null: false
end
end
end
class CreatePerformanceTypes < ActiveRecord::Migration
def change
create_table :performance_types do |t|
t.timestamps null: false
end
end
end
class AddPerformanceTypeIdToPerformance < ActiveRecord::Migration
def change
add_column :performances, :performance_type_id, :integer
end
end
class AddAppointmentInfoToPerformance < ActiveRecord::Migration
def change
add_column :performances, :user_id, :integer
add_column :performances, :start_at, :datetime
add_column :performances, :end_at, :datetime
end
end
class AddUserToPerformances < ActiveRecord::Migration
def change
add_foreign_key :performances, :users
end
end
class AddTypeToPerformances < ActiveRecord::Migration
def change
add_foreign_key :performances, :performance_types
end
end
class AddAdditionalFieldsToPerformanceType < ActiveRecord::Migration
def change
add_column :performance_types, :name, :string
add_column :performance_types, :description, :string
end
end
class AddPerformanceTypeToRate < ActiveRecord::Migration
def change
add_foreign_key :rates, :performance_types
end
end
class AddRateToPerformances < ActiveRecord::Migration
def change
add_column :performances, :rate_id, :integer
add_foreign_key :performances, :rates
end
end
它應該是單數,而不是複數。 'has_one:performance_type'你也拼錯表現 - 可能只是輸入你的問題時, –