0
는 내가 만드는 사용자에 따라 기본값을 설정하고 싶은 나는 그 작업을 수행하는 방법을 궁금해 :current_user를 기반으로 기본값을 설정하는 방법은 무엇입니까?
class Item < ActiveRecord::Base
belongs_to :invoice
after_initialize :default_values
...
private
def default_values
self.tax_rate = current_user.tax_rate || 0
end
end
문제는 내가 모델 내부의 CURRENT_USER를 사용할 수 있다는 것입니다.
이 나는 내 컨트롤러에 무엇을 가지고 있습니다 :
def create
@invoice = Invoice.new(params[:invoice])
3.times { @invoice.items.build }
...
end
아무도 도와 드릴까요?
좋아, 감사합니다! 그러나 tax_rate는 송장이 아닌 Item에 속해야합니다. – Tintin81
@ Tintin81은 Invoice의 접근 자로 설정되어 컨트롤러에서 한 번만 설정할 수 있으며 Item에서 읽을 수 있습니다. 데이터베이스에 저장됩니다. 이렇게하면 웹 페이지의 대량 할당을 방지 할 수 있습니다. – nolith
@ Tintin81 수업에서 모든 커플 링을 제거하는 솔루션으로이 답변을 완전히 다시 작성했습니다. – nolith