나는이 컨트롤러에서 말한다면이 필요 무엇원시 양식 데이터에서 모델 객체 생성 - 일대일 필드 일치가 필요합니까?
@order = Order.new(params[:order])
이 작동하려면?
params[:order]
의 모든 필드와 주문 모델의 모든 항목이 일대일로 일치해야합니까?
params[:order]
에 주문을 인스턴스화하는 데 필요한 것보다 더 많은 또는 더 적은 필드가있을 수 있습니까?
나는이 컨트롤러에서 말한다면이 필요 무엇원시 양식 데이터에서 모델 객체 생성 - 일대일 필드 일치가 필요합니까?
@order = Order.new(params[:order])
이 작동하려면?
params[:order]
의 모든 필드와 주문 모델의 모든 항목이 일대일로 일치해야합니까?
params[:order]
에 주문을 인스턴스화하는 데 필요한 것보다 더 많은 또는 더 적은 필드가있을 수 있습니까?
params [: order] 자체는 해시이어야하며 각 키는 모델 필드의 이름입니다. Rails가 양식 필드 이름을 params 해시로 변환하는 방법을 보려면 form_for helper 및 view source를 사용하여보기 템플리트를 작성하십시오.
필드가 더 많거나 적을 수 있습니다. 예. 추가 필드는 무시됩니다. 적은 수의 필드 만 인스턴스 객체에 복사됩니다. ActiveRecord 객체를 인스턴스화하는 데는 아무 것도 필요하지 않습니다. 개체 유효성과 저장은 다른 이야기입니다. 유효성 검사와 ActiveRecord 콜백 메커니즘을 호출합니다.
실제로 필드 수가 적을 수 있습니다.
유효성 검사에 필요한 모든 필드가 있는지 확인하십시오!
모델에 양식보다 필드가 더 많습니까? ActiveRecord가 관계없는 것을 무시할 것입니까? – eggdrop
그래, 개체를 인스턴스화하는 데 아무런 문제가 없습니다. 저장 또는 업데이트하려고 할 때 발생할 수있는 문제가 있습니다. 이 경우 필드가 적 으면 데이터베이스 요구 사항을 위반할 수 있지만 그 전까지는 그렇지 않을 수 있습니다. – eggdrop
예, 정확하게. 유효성 검사는 객체를 저장하거나 호출 할 때까지 실행되지 않습니다. 또는 무효. 더 많은 것 : http://guides.rubyonrails.org/activerecord_validations_callbacks.html – Raphomet