У меня есть контроллер для ресурса, BuddiesController. Мои маршруты конфигурационный файл до сих пор не былоМаршрутизация и форма в Rails
resources :buddies
match ':controller(/:action(/:id))', :via => [:get, :post]
Я не понимал того, что «ресурсы: Buddies» линия делает, пока я не прочитал на только сейчас маршрутизации в Rails, потому что поведение было идентично тому, что Я ожидал до сих пор. Проблема заключалась в том, что я хотел добавить к контроллеру не CRUD-действие: «поиск». Каждый раз, когда я использовал link_to (: action => 'search'), я получал бы исключение, говорящее, что действие «показать» не может быть найдено, несмотря на то, что url был «localhost: 3000/buddies/search», как ожидалось. У меня есть несколько вопросов, возникающих в связи с этим:
Во-первых, форма я использовал в «новой» перестал работать:
%= form_for(@buddy, {:action => :create, :method => :post, :html => {:role => "form"}}) do |f| %>
потому что buddies_path не может быть найден. Как я могу вручную добавить путь buddies_path к моим маршрутам?
Во-вторых, я пересмотрел форму использования:
<%= form_for(@buddy, :url => {:action => :create, :id => @buddy.id}, :html => {:role => "form", :id => @buddy.id}) do |f| %>
, но это вызвало форму, чтобы дать мне пароль и подтверждение по электронной почте, не соответствующий ошибки, даже если они совпадают. Что тут происходит?
Наконец, что является лучшим способом добавить действие поиска к моему ресурсу?