путаницы маршрутов путают шоу действие с именованным маршрутом - PullRequest
0 голосов
/ 17 сентября 2010

У меня проблема с реализацией списка действий с собственным маршрутом. вот что у меня есть (только важные части) routes.rb

   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

Я получаю эту ошибку ActiveRecord :: RecordNotFound в PostsController # show

Не удалось найти сообщение с идентификатором = сортировка.

Я думаю, потому что приложение думает, что когда я набираю http://localhost:3000/posts/sort, я хочу показать элемент с id = sort. Как я могу это исправить ?? заранее спасибо

1 Ответ

1 голос
/ 18 сентября 2010

Действительно, вы находитесь в контексте ОТДЫХА.При доступе к сообщениям с помощью метода: get маршрутизация по умолчанию отправляет запрос в действие show с параметром: id, установленным для сортировки.Попытайтесь определить действие сортировки в ваших маршрутах, например:

map.resources :posts, :collection => {:sort => :get}

Установите глагол в соответствии с вашими потребностями;удалите строку

map.sort "sort" , :controller => "posts" , :action => "sort"

Теперь у вас должен быть хороший URL: sort_posts_url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...