私は自分自身をかなり混乱させました。いくつかの画像を取得して結合し、結合した画像を .png 形式で吐き出すコードがあります。
もともと、このコードはモデルのメソッドであり、使用する画像を示すモデルの関連付けがありました。したがって:
class Component < Refinery::Core::BaseModel
drawing_accessor :drawing
. . .
end
class Photo < Refinery::Core::BaseModel
has_and_belongs_to_many :components
has_many :drawings, :through=>:components
def diagram
. . . .
Base64.encode64(png.to_blob) #spit out the png as a base64 encoded string
end
end
そして、私が書くことができるビューで
<img src="data:image/png;base64,<%=@photo.diagram%>"
ここで、同じように画像を結合する必要がありますが、コンポーネント ID のリストから直接使用する必要があります。コンポーネント ID が写真に保存されていない (保存されていない可能性がある) ため、このコードを写真モデルから移動する必要があります。
コンポーネント ID のリスト (配列またはコレクション) であるパラメーターを使用して、それらがどこから来たかに関係なく、同じ描画コードを呼び出せるようにしたいと考えています。
ダイアグラムは一連のコンポーネントから作成されているため、コンポーネントに属しているはずです...どこかに。
私のさまざまな試み undefined method
で、ActiveRecord::Relation、または配列に行き着きました。
このコードがどこに属し、どのように呼び出すかについての私の考えを明確にするのを手伝ってもらえますか?
ありがとう