0
에 내가 푸와 바 모델을 가지고가 속한 carrierwave 업 로더
- 푸
belongs_to
바 - 바
has_one
푸 내가 carrierwave 업 로더에
bar_id
을 얻고 싶은
하지만, 그것은 항상 nil 값입니다. 나는 초기화
class FooUploader < CarrierWave::Uploader::Base
def initialize(*)
super
binding.pry # debug here
end
end
들어 올립니다 화면에서 디버깅을 할 때 디버그 :
[1] pry(#<FooUploader>)> model
=> #<Foo _id: 585347a5fe37a81f4773b3ac, created_at: nil, updated_at: nil, picture_filename: nil, bar_id: nil, name: "test", slug: "test", description: "test">
내가 bar_id
값이 나는 두 가지 방법이 시도가 존재 확신 : 컨트롤러
넣어
def create
bar = Bar.first
@foo = Foo.new(foo_params.merge(bar: bar))
end
또는 형태로 넣기
<%= f.hidden_field :bar_id, value: Bar.first %>
나는 당신이, 내가 초기화에 디버그 시도가 내 문제를 클리 어리 읽을했다고 생각 'model.bar_id'는 항상 nil입니다. – itx
죄송합니다. 'model.bar_id' 대신에'bar_id'를 호출하려고했습니다. 'Foo'를 저장할 때'bar_id'에 접근하려고 했습니까? 그럼 아직도 제로입니까? 또한'bar' 대신'new'에'bar_id'를 설정하려고 할 수 있습니다 :'foo_params.merge (bar_id : bar.id)' – Spa
'bar_id'는'Foo' 레코드를 저장할 때 nil이 아닙니다. – itx