CanCan, :read, :show - niedziałające uprawnienia

Cześć,

Mam problem z wyświetleniem listy klientów. Za Chiny nie mogę wyświetlić klientów danego/zalogowanego użytkownika. W kontrolerze umiem wyciągnąć to za pomocą where, ale chyba w CanCan nie o to chodzi.
Nie działa to z :read, :show ani z :index. Edycja i usuwanie działają normalnie.

Mój kod:

[code]MODEL CanCan Ability.rb:
can :read, Client, :user_id => user.id

lub

can :read, Client do |client|
client.try(:user_id) == user.id
end

KONTROLER:
def index
@clients = Client.all(:order => :group_id)

WIDOK:
<% if can? :show, client %>

<%= link_to ‘Show’, client %>
<% end %>[/code]
Dzięki za pomoc.

W Controllerze wywal w ogóle wpis. w wersji obecnej 1.6 masz z automat dla index wyciagane dane dla current_user
czyli twój controller ma wygaladac tak

load_and_authorize_resources

def index

end

i tyle
w modelu ability
dajesz
can :read, Client, :user_id => user.id

i tyle

Działa na pewno

w widoku też daj :read a nie sjow, lepiej jak tu i tu tak samo się nazywają.

Dalej jest to samo, czyli wyciąga mi wszystkie rekordy.

[code]Ability.rb

if user.role === "manager"
  can :create, Client
  can :read, Client, :user_id => user.id
  can :update, Client do |client|
    client.try(:group_id) == user.group.id
  end
  can :destroy, Client do |client|
    client.try(:group_id) == user.group.id
  end

end[/code]

[code]Widok

<% @clients.each do |client| %>

<%= client.company %> <%= client.user_id %> <%= client.group.name %> <%= client.user.username %> <%= client.user.surrname %>
<% if can? :read, client %>
	<td><%= link_to 'Show', client %></td>
<% end %>
<% if can? :update, client %>
	<td><%= link_to 'Edit', edit_client_path(client) %></td>
<% end %>
<% if can? :destroy, client %>
	<td><%= link_to 'Destroy', client, :confirm => 'Na pewno chcesz usunąć klienta? Operacja jest nieodwracalna.', :method => :delete %></td>
<% end %>
<% end %> [/code] Masz jakiś pomysł jeszcze?

Edit: Ok, działa - miałem przed tym wszystkim jeszcze:

[code] if user.nil?
can :read, Client
end

if user
  can :read, Client
end[/code]