나는 사용자가 항목을 작성하는 것을 다루는 RoR 응용 프로그램을 만들고 있습니다. 이 항목에는 가격이 있으며, 항목을 수입 또는 비용으로 나타내는 부울 값과 acts_as_taggable_on
플러그인 태그가 있습니다. 사용자 act_as_taggers
, 태그에 소유권을 적용 할 수 있습니다.현재 사용자를위한 합계
저는 합계가 가장 낮은 (소득 항목 - 비용 항목) 사용자 태그를 찾고자합니다.
는 지금은 사용자가 만든 모든 태그를 찾을 수 있어요 :
@all_tags = current_user.owned_tags
내가 태그에 의해 태그, 사용자의 각 항목을 통해 갈 다음 수있어를, 그리고 생성 각 태그 가격의 합계와 배열 :
@tag_groups = Array.new
for tag in @all_tags
entries_tagged_with_tag = current_user.entries.tagged_with(tag)
@tag_groups << entries_tagged_with_tag.sum('price')
end
이 나에게 각 태그의 합계 가격을 제공하지만, 나는 그 합과 연관된 태그 이름을 누락.
그러나 여기에 꽤 큰 캐치가 있습니다. 항목 가격은 수입 또는 비용 인 경우 엔 그 자체로 표시되지 않습니다. 각 항목에는 'is_income'필드가 있습니다. true는 수입이 수입이고 false는 수입이 비용임을 의미합니다. 내가보기에 표시 할 찾고 있어요
all_incomes_with_tag(tag) - all_expenses_with_tag(tag)
정보는 다음과 같습니다 : 태그 이름, 관련 항목 및 총 가격의 수 그래서, 태그의 총 실제로, 사이비 코드입니다. 가장 큰 비용 표와 가장 큰 소득표에 대해이 정보를 보여 드리고자합니다.
충분한 정보를 제공해주기를 바랍니다. 어떤 도움이라도, 올바른 방향으로 향하는 것조차도 매우 높이 평가할 것입니다!
좀 진전 한
UPDATE. 여기에 내 현재 컨트롤러의 : 나에게 다음과 같은 출력 제공
<% @tag_groups.sort_by { |tag| tag[:total_price] }.each do |tag| %>
<p><%= tag[:tag_name] %> — <%= number_to_currency(tag[:total_price]) %> (<%= tag[:number_of_entries] %>)</p>
<% end %>
: 내가 거의 다 해요처럼
food — $-32.50 (1)
lunch — $-32.50 (1)
coffee — $-32.50 (1)
business — $-32.50 (1)
development — $930.00 (1)
groceries — $930.00 (1)
babies — $930.00 (1)
second tag — $933.45 (1)
first tag — $933.45 (1)
personal — $1,022.00 (2)
내 기분을 ...
여기@all_tags = current_user.owned_tags
@tag_groups = Array.new
for tag in @all_tags
income_entries_tagged_with_tag = current_user.entries.tagged_with(tag, :conditions => ['is_income = ?', true])
expense_entries_tagged_with_tag = current_user.entries.tagged_with(tag, :conditions => ['is_income = ?', false])
all_entries_tagged_with_tag = current_user.entries.tagged_with(tag)
tag_total_income = income_entries_tagged_with_tag.sum('price')
tag_total_expense = expense_entries_tagged_with_tag.sum('price')
tag_total = tag_total_income - tag_total_expense
@tag_groups << { :total_price => tag_total, :tag_name => tag.name, :number_of_entries => all_entries_tagged_with_tag.count }
end
하고 나의보기입니다