コピーして貼り付けたくないだけです。もっと良い方法があるはずです。
単一のモデルを使用していくつかのデータを 2 つの配列に収集する単一のコントローラーがあります。次に、これらの配列をグラフで使用する単一のビュー (index.html.erb) を作成します。それはとてつもなく単純です。これが全景です。コントローラーからの配列は、明らかに @buildStepArrays と @buildDates です。
<% chart = GChart.line(:title=>"Build Times", :size=>"1000x300", :data=>@buildStepArrays, :colors=>@colors, :legend=>@buildDates) %>
<% chart.axis(:left) %>
<%= image_tag chart.to_url %>
コントローラーはこちら
def index
# These three arrays should be the same size
@buildStepArrays = []
@buildDates = []
@totalBuildTimes = []
@latestId = Env2.last().BuildId
@latestId = @latestId - 1
for buildNumber in (@latestId-4)..@latestId
@build = Env2.find_all_by_BuildId(buildNumber)
totalTime = 0
@currentBuildTimes = []
for step in @build
@currentBuildTimes << step.Minutes
totalTime += step.Minutes.to_i
end
@buildStepArrays << @currentBuildTimes.map { |e| e.nil? ? 0 : e }
@totalBuildTimes << totalTime
@buildDates << @build.last().Created
@colors = [["FF1300"], ["FF8C00"], ["FFFF00"], ["00CC00"], ["1240AB"]]
end
end
私がやりたいのは、 1 つだけでなく 4 つのモデル (4 つの異なるデータベースの同じテーブル) からまったく同じデータを収集し、ビューに 1 つではなく 4 つのグラフを表示することです。これを正しく行う方法を知るには、Rails について十分な知識がありません。今の私の唯一のアイデアは、コントローラー内のコードを文字通りコピーして 4 回貼り付け、変数名を変更することです。それはまったくひどいことです。私はどうしたらいいですか?