J'ai un problème pour implémenter une action de liste avec son propre chemin. voici ce que j'ai (seulement des parties importantes) routes.rbrails routes confusion show show avec route nommée
map.resources :posts
map.login "login" ,:controller => "user_sessions" ,:action => "new"
map.logout "logout" , :controller => "user_sessions" , :action => "destroy"
map.sort "sort" , :controller => "posts" , :action => "sort"
posts_controller.rb
class PostsController < ApplicationController
def index
logger.info "index params:::"+params.inspect
@posts = current_user.posts.paginate :page => params[:page], :order => 'created_at DESC'
end
end
def show
@post = Post.find(params[:id])
end
def edit
@post = Post.find(params[:id])
end
def sort
logger.info "sort params:::"+params.inspect
@posts=current_user.posts.paginate(:page=>params[:page],:order=> params[:sort].to_s)
if request.xml_http_request?
render :update do |page|
page.replace_html :posts , :partial => 'post'
end
end
end
end
Je reçois cette erreur ActiveRecord :: RecordNotFound à PostsController # show
Couldn Ne pas trouver Post avec ID = tri.
Je pense que c'est parce que l'application pense que lorsque je tape http://localhost:3000/posts/sort je veux montrer l'élément avec id = sort.Comment puis-je résoudre ce problème ?? merci d'avance