Релевентом кодыRails3: Простая задача маршрутизации между представлением и моделью
routes.rb
Waterloop3::Application.routes.draw do
resources :submissions
match ':controller(/:action(/:id(.:format)))'
end
submission_controller.rb - содержит действие под названием sort_by_category_academic - список всех материалов, представленных с категорией, академично.
class SubmissionsController < ApplicationController
def sort_by_category_academic
@submissions = Submission.find(:all,
:conditions=>["category = academic" ])
end
end
index.html.erb - при нажатии на селекторном ссылку "Академический" приносит пользователю "/ sort_by_category_academic посылки"
<%= link_to 'Academic', :controller => "submission", :action => "sort_by_category_academic" %>
Некоторые странное поведение стоит отметить.
В route.rb переместите «match»: controller (/: action (/: id (.: Format))) «выше» ресурсов: представления », как показано ниже.
Waterloop3::Application.routes.draw do
match ':controller(/:action(/:id(.:format)))'
resources :submissions
end
Когда я это сделал, по крайней мере, подчинение было направлено на академическое совершенство. Тем не менее, теперь страница представления все действовала. Я не могу добавлять новые записи с этим изменением. Проблема, похоже, связана с приоритетом маршрутизации, о котором я не совсем знаю. Если кто-то еще знает причину, по которой это устраняет проблему, я хотел бы услышать объяснение. RoR по-прежнему довольно странный для меня.
Мой вопрос
Я думал, что это будет делать эту работу.
match ':controller(/:action(/:id(.:format)))'
Но я продолжаю получать эту ошибку, когда я нажимаю на ссылку Academic.
маршрутизации Ошибка
No route matches "/submission/sort_by_category_academic"
Любая идея, как обойти эту проблему?
EDIT
Найти действия в submissions_controller.rb
def find
@submissions = Submission.find(:all,
:conditions=>["title = ? OR description = ?", params[:search_string], params[:search_string]])
end
Найти текстовое поле в index.html.erb
<%form_tag "/submissions/find" do%>
<%=text_field_tag :search_string%>
<%=submit_tag "Search"%>
<%end%>
Так FIND, предполагают, чтобы взять в SEARCH_STRING и просмотрите все материалы, соответствующие названию или описанию.
Я использую, что один для другого действия называется, «найти», который используется для поиска. Его реализация почти такая же, как «sort_by_category_academic», и работает, пока «sort_by_category_academic» этого не делает. Но я попробую это. –
хорошо, вы можете продолжать корректировать и просто запускать маршруты рейка, чтобы увидеть результирующие маршруты, которые сгенерированы. – Doon
У меня есть это сейчас «ActiveRecord :: RecordNotFound в SubmissionsController # show Не удалось найти Подача с идентификатором = академический» –