0

Rails環境をロードするスクリプトがあります。(

添付ファイルを作成してその親を保存すると、すべてが保存され、添付ファイルのスタイルによって作成されます ["100>", "jpg"]

私のスクリプト:

require './config/environment.rb'
house = House.find(1)
house.attachments.build(doc: File.new('myfile.pdf'), category_id: 2)
house.save

モデル

House < AR::Base
  has_many :attachments, :as => :attachable
end

Attachment < AR::Base
  ### has_attached_file :doc, styles: lambda {|attachment| {thumb: (attachment.instance.category_id == 2 ? ["500>", 'jpg'] : ['100>', 'jpg']} )}  
  has_attached_file :doc, styles: lambda {|attachment| {thumb: (attachment.instance.category_id == 2 ? ["500>", 'jpg'] : ['100>', 'jpg'] )}}  #category_id is always nil at this point but still still saves in the database 
  belongs_to :attachable, polymorphic: true
end

ここでばかげたことを見落としていると思いますが、何かポインタをいただければ幸いです:)

4

1 に答える 1

3

そのラムダの構文は少しファンキーに見えます。その三項演算子が「予期しない ':'」を鳴らしていない理由がわかりません。

これを試してみてください:

Attachment < AR::Base
  has_attached_file :doc, styles: lambda {|attachment| { thumb: (attachment.instance.category_id == 2 ? ["500>", 'jpg'] : ['100>', 'jpg'])}}
  belongs_to :attachable, polymorphic: true
end
于 2012-06-20T19:28:47.530 に答える