Ruby on rails 没有与资源Rails中的成员匹配的路由
我有以下路线:Ruby on rails 没有与资源Rails中的成员匹配的路由,ruby-on-rails,forms,Ruby On Rails,Forms,我有以下路线: 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 此外,在我的rake路线中
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
此外,在我的rake路线中,我可以看到:
parse_source GET/sources/:id/parse(:format)sources#parse
为什么呢?我的操作没有定义吗?对[:parse,source]使用
表单
问题是您没有将源
本身添加到URL,因此没有路由所需的id
。您需要使用url:{action:'parse',id:source.id}
,但是[:parse,source]
表单更清晰、更短
表单_代表源,url:parse _source _url(source.id)do | f|
您也可以使用上述方法解决此问题感谢您的快速回复。如果这样做,我会得到这样的结果:未定义Symbol:Class的方法'model\u name'。为什么我不能为[source,:parse]做表单?。这是[:parse,source]
.meagar,这方面的文档在哪里?我正在看,但这并不能解释这一点。
<% @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"}