난 레일 3.2.18 및 MySQL 5.6.20에서 작동합니다. 나는 새 테이블을 만드는 마이그레이션을 만들었고 다음과 같이 보입니다.Mysql2 :: 오류 : 알 수없는 열
class CreateRequest < ActiveRecord::Migration
def change
create_table :requests, id: false do |t|
t.string :id, null: false
t.integer :lesson_id, null: false
t.integer :user_id, null: false
t.boolean :approved, null: false, default: false
end
add_index :requests, :id, unique: true
end
end
기본 키로 uuid를 사용하기로 결정했습니다. DB의 새로운 기록을 나는 다음과 같이 작성 :
def create_request(lesson)
request = Request.new.tap do |req|
req.id = SecureRandom.uuid
req.lesson_id = lesson.id
req.user_id = @user.id
end
request.save
end
그래서 우리가 요청 모델을 가지고 있고 그것은 두 개의 다른 테이블 레슨 (일대일) ANS 사용자 (일대) 관련이있다. 아니, 나는 모든 모델을 보여줄 것이다.
class PublicizeRequest < ActiveRecord::Base
self.table_name = "requests"
self.primary_key = "id"
has_one :lesson
belongs_to :user
end
class Lesson < ActiveRecord::Base
(...)
belongs_to :publicize_request
end
class User < ActiveRecord::Base
(...)
has_many :publicize_requests
end
이제 주요 문제를 설명 할 수 있습니다.
Mysql2::Error: Unknown column 'lessons.request_id' in 'where clause': SELECT `lessons`.* FROM `lessons` WHERE `lessons`.`archived` = 0 AND `lessons`.`request_id` = 'd0da41df-a9be-4575-ada0-538abe1f54a3' LIMIT 1
내가 : 나는 같은 방법으로 교훈을 얻을하려는 경우 나 오류 다음 얻을
@request.user
그러나 : 나는 DB에서 요청을 얻고 I 사용자 데이터를 얻기 원한다면 나는이 간단한 작업을 수행 할 수 있습니다 레일에 초보자와 나는 이것을 어떻게 처리 해야할지 모르겠다. 모든 해답을 가져 주셔서 감사합니다.
감사합니다 .. – user2239655