У меня есть следующие маршруты:Нет маршрут не совпадает с элементом в ресурсах Rails
resources :sources do
member do
get 'parse'
end
end
И следующий контроллер:
class SourcesController < ApplicationController
before_filter :authenticate_admin!
def index
@sources = Source.all
end
def parse
end
end
У меня есть форма, что я хотел бы, чтобы вызвать действие синтаксического анализа в контроллер. Я делаю это так:
<% @sources.each do |source| %>
<tr>
<td><%= source.name %></td>
<td><%= source.url %></td>
<td>
<%= form_for source, url: {action: 'parse'} do |f| %>
<%= f.submit "Parse this source" %>
<% end %>
</td>
</tr>
<% end %>
И я получаю:
Failure/Error: visit "/sources"
ActionView::Template::Error:
No route matches {:action=>"parse", :controller=>"sources"}
Кроме того, в моих реках маршрутах, я вижу это:
parse_source GET/источники /: идентификатор/синтаксические (.: формат) источники # parse
Почему это? Разве мое действие не определено?
Спасибо за быстрый ответ. Я получаю это, если это так: 'undefined method' model_name 'для Symbol: Class'' –
Интересно. Почему я не смог бы выполнить form_for [source,: parse] - Doing '' url: {action: 'parse', id: source.id}, method:: get'' works ... –
К сожалению, что назад. Это '[: parse, source]'. – meagar