2
這裏更紅寶石的方式是我的控制器索引操作是否有這樣做的邏輯
sub1 = "(select sum(courses_users.know) from courses_users where courses_users.course_id = courses.id) know_score"
sub2 = "(select levels.name from levels where levels.id = courses.level_id) level_name"
@courses = ActiveRecord::Base.connection.execute "select name,#{sub1},#{sub2} from courses order by level_id, know_score"
@total_score = User.count() * 2;
這就是視圖邏輯
<% level_name = "" %>
<% @courses.each do |course| %>
<% if course[2] != level_name %>
<tr>
<th colspan='2' style='text-align:left;'><br /><br /><%= course[2] %><br /><br /></th>
</tr>
<tr>
<th>Title</th>
<th>Knowledge Score</th>
</tr>
<% level_name = course[2] %>
<% end %>
<tr>
<td><%= course[0] %></td>
<td><%= (course[1].nil? ? 0 : course[1].to_i) %>/<%= @total_score %></td>
</tr>
<% end %>
這是什麼每個淡然看起來像一個例子環
["PHP - The Basics", #<BigDecimal:1033708d0,'0.31E2',9(18)>, "Beginner"]----------------
這似乎是這樣的黑客,我很想讓這更類似於Ruby,
這裏是我的數據庫結構,如果他們將幫助
create_table "courses", :force => true do |t|
t.string "name"
t.integer "target_id"
t.integer "level_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "order_num"
end
create_table "levels", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
似乎很大,但其未能對失蹤的屬性:名字......我認爲它不給我 – Trace
我更新了我的範圍對象數據或某事這樣你也可以獲得課程名稱。 –
我欣賞所有的幫助..再次感謝,但最後一個問題未定義的方法'know_score'爲#<課程:0x103490dc8> – Trace