約1週間、レンダリングするビューを取得しようとしています。コレクションをエクスポートできるようにする必要があるアプリケーションがあるため、Web ブラウザーで.txt
およびとしてレンダリングされるライン パーシャルを使用することにしました。.csv
これまでのところ、コレクション全体を (1 行ずつ) レンダリングするという点で優れています。ただし、特定のコレクション オブジェクト (この場合は製品) を特定の属性 (サイズ要素) に基づいて複製するのに問題があります。
以下のコードは、私が今行き詰まっている場所のようなものです
コントローラ
class PexportController < ApplicationController
layout 'csv'
def index
end
def show
@feed_template = params[:id]
@products = Product.find :all
@products.each do |product|
unless product.size.nil? || product.size.empty? || product.size.kind_of?(Fixnum)
@products << new_products_for(product)
end
end
respond_to do |format|
format.html
format.text
end
end
private
def new_products_for(product = {})
products = Array.new
product.size.each do |p|
products << Product.new(p.attributes)
end
products
end
end
意見
<%= render partial: 'pexport/p', collection: @products %>
部分的
<%= p.sku %> <%= p.name %> <%= p.price %> ......
基本的に、コントローラーメソッドを機能させる必要があります。ラインデュプリケータに使用している属性 :size は、単に so のような配列[1,2,3]
です。そして、このサイズ属性を含む製品が、サイズ配列内のサイズの数に基づいて複製されることを望みます。私がすぐにそれについて行くかどうかさえわかりませんが、それは私が輪になって行くところまで来ているので、私はそれを投稿することにしました.