그래서 저는 Ruby on Rails를 처음 경험했습니다. 이것은 두 번째 달이지만, 여전히 나에게 이상한 일이 있습니다. 어떤 경우에는 다음을 할 수 있습니다.FK 열 이름이 레일에 엉망이되었습니다.
link.url = url
여기서 클래스 링크는 URL 클래스와 FK가 있습니다. 그러나 내가 어떤 경우에는, 경우 :
ActiveModel::MissingAttributeError: can't write unknown attribute `equipment_id`
가 왜 이런 일이 :
equipment.category = category
레일즈 말, 불평하기 시작? 내가 가진 때마다 그것을 내가 한 참고 문헌에 대한 테이블의 일부 내용을 변경해야 할 일 :
add_reference :equipment, :category, foreign_key: true
그래서 첫 번째 예제 같은 모든 클래스/테이블 동작을 할 수 있습니까?
편집 1 :
종류와 장비에 대한 나의 스키마는 이것이다 :
create_table "categories", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "equipment", force: :cascade do |t|
t.string "title"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "category_id"
t.index ["category_id"], name: "index_equipment_on_category_id"
end
편집 2 클래스의 연관성이 있습니다
class Category < ApplicationRecord
# Associations
has_many :equipment
...
class Equipment < ApplicationRecord
# Associations
has_one :category
...
'db/schema.rb'의 관련 부분을 보여줄 수 있고 'Equipment' 모델에서 어떻게 연결을 설정 했습니까? 나는 그 모델의 테이블 이름이'장비 '(복수형)라고 기대한다. 그렇다면 마이그레이션 문은'add_reference : equipments, : category, foreign_key : true'이어야합니다. – hoffm
테이블 이름은 실제로 '장비'입니다. 나는 스키마를 보여줄 수 있도록 질문을 편집 할 것이다. – olegario
스키마를 포함 해 주셔서 감사합니다. (하지만 코드를 이미지가 아닌 텍스트로 공유하십시오.) 모델에 has_one/belongs_to 연관을 표시 할 수 있습니까? – hoffm