내가 ID레일 마이그레이션은 update_attributes 기능은 예를 들어</p> <p>을 실패 여기서
def change
create_table :tests, id:false do |t|
......
end
없이 테이블을 작성 레일
4.1.6 잠재적 버그 설명 버그 update_attributes 콘솔의 경우
> a=Test.first
=> #<Test symbol: "ABC", month: 3, year: 14>
> b={"symbol"=>"EFG", "month"=>"4", "year"=>"15"}
....
> a.update_attributes(b)
TypeError: nil is not a symbol
.......
자세한 내용은 테스트에 자동으로 삽입 된 추가 필드 "nil => nil". 예 :
> a.attributes
=> {"symbol"=>"ABC", "month"=>3, "year"=>14, nil=>nil}
nil => nil 필드도 새 레코드의 속성에서 생성되었습니다. 예 :
> b=Test.new
=> #<Test symbol: nil, month: nil, year: nil>
> b.attributes
=> {"symbol"=>nil, "month"=>nil, "year"=>nil, nil=>nil}
BYW, 저는 mysql을 사용하고 있습니다. id : false가 제거 된 경우 위의 문제가 존재하지 않습니다.
왜 ID를 삭제 했습니까? 하나의 필드에 대해 일종의 고유 한 식별자가 필요하며, ID가 아닌 경우 레일스에 알려줘야합니다. – sevenseacat
데이터베이스를 자주 업데이트하기 때문에. id 열은 나에게 의미가없는 매우 큰 숫자로 끝납니다. – user1143669