J'utilise le plugin make_resourceful dans mon application Rails, et j'essaie d'utiliser des ressources imbriquées.Rails - make_resourceful avec des ressources imbriquées
Mon code de contrôleur ressemble à ceci:
class ClientRegionsController < ApplicationController
make_resourceful do
actions :all
belongs_to :client
response_for(:create) do |format|
format.html { redirect_to client_client_regions_path }
end
response_for(:update) do |format|
format.html { redirect_to client_client_regions_path }
end
end
private
def current_objects
@current_objects ||= ClientRegion.paginate(:page => params[:page], :order => "name")
end
end
Ce que je veux sur l'action index est tous les client_regions pour un client donné, à savoir:
client_1.client_regions
Ce que je suis réellement obtenir est-ce que toutes les régions clientes du système sont:
ClientRegion.all
Je me suis gratté la tête à ce sujet pour un moment, alors j'ai pensé que je demanderais ici. La chose étrange est que les autres actions fonctionnent comme je l'espère, c'est juste l'action d'index qui est défectueuse.
Edit: mes itinéraires sont définis comme
map.resources :clients, :has_many => :client_regions
Ainsi, les chemins sont
/clients/1/client_regions
/clients/1/client_regions/new
/clients/1/client_regions/20/edit
etc
Qu'est-ce que votre look de route comme? Je le fais en utilisant make_resourceful et ça marche très bien pour moi. Si vous ne pouvez pas le comprendre, vous pouvez toujours remplacer current_objects pour définir manuellement la collection. –
Je sais que je peux facilement contourner cela, mais make_resourceful fonctionne si bien que je veux vraiment comprendre ce que je fais de mal ici. – DanSingerman
Merci de poster vos itinéraires. Cela ressemble totalement à ça devrait marcher. Quelle version de make_resourceful utilisez-vous? La mise à jour du dernier code pourrait le réparer (c'est ce que j'utilise, et comme je l'ai dit, cela fonctionne très bien pour nous). –