0
我試圖展示客戶使用的所有玩具。如何根據條件分組信息?
問題是顯示沒有選中狀態的所有玩具。
當我選擇一個狀態時,結果應取決於所選狀態。
表:
|toys|
|id| |name| |client_id| |status|
1 facebook 1 0
2 whatsup 1 1
3 android 2 0
4 google 2 1
3 iphone 3 0
|clients|
|id| |name|
1 ZUCK
2 GATES
3 JOBS
這裏是控制器:
def index
if params[:status]=="3"
@data= Toy.find(:all,:conditions=>['status IN (0,1,2)' ])
@client_groups = Toy.find(:all, :include => :client, :conditions=>['status IN (0,1,2)' ],:group=>['client_id'])
else
@data= Toy.find(:all,:conditions=>['status= ?',params[:status] ])
@client_groups = Toy.find(:all, :include => :client,:conditions=>['status = ?',params[:status] ],:group =>['client_id'])
end
end
在這裏,模型:
class Client < ActiveRecord::Base
has_many :toys
end
class Toy < ActiveRecord::Base
belongs_to :client
end
這裏是視圖:
<% form_tag :controller=>"toy",:action=>"index" do %>
Status:
<%= select_tag "status", "<option value=\"3\">All</option>"+ options_for_select([ ["Active",0],["Inactive",1]],params[:status].to_i) %>
<%= submit_tag "SEARCH", :name => nil %>
<% end %>
<%= render :partial=>"table" %>
下面是部分視圖:
<table border="1">
<% @client_groups = @data.group_by{|toy| toy.client.name} %>
<% @client_groups.each do |client_name, toys| %>
<tr><td>Client Name</td></tr>
<tr><td><%= client_name %></td></tr>
<tr>
<td></td>
<td>Name Toy</td>
<td>State Toy</td>
<tr>
<% toys.each do |toy| %>
<tr>
<td></td>
<td><%= toy.name %></td>
<td><%= toy.status %></td>
</tr>
<% end %>
<% end %>
</table>
的局部視圖表示本:
我試圖示出了由客戶機這樣的信息組:
我試過
<% @client_groups = @data.group_by{|toy| toy.client.name} %>
<% @client_groups.each do |client_name, toys| %>
<tr><td>Client ID</td><td>Client Name</td></tr>
<tr><td><%= client_name.id %></td></tr>
<tr><td><%= client_name.name %></td></tr>
<tr>
<td></td>
<td>Name Toy</td>
<td>State Toy</td>
<tr>
請有人可以幫助我?
所有類型的幫助將被接受。
Pinny,編輯該帖子,因爲我想顯示客戶端的id。可以幫我嗎? –
只需group_by {| toy | 「#{toy.client.id} |#{toy.client.name}」} ...然後在你的小號 – JakeTheSnake
傑克這個字符串分開,我想你的代碼,但是有錯誤 –