Ruby on rails rails应用中链接到标记的路由/url映射已断开

Ruby on rails rails应用中链接到标记的路由/url映射已断开,ruby-on-rails,rails-routing,url-mapping,Ruby On Rails,Rails Routing,Url Mapping,3天来我一直在努力让它工作。我似乎不明白它为什么不起作用。当用户单击视图上的链接标记时,应在控制器中执行csv功能。相反,我有个例外 这是相关文件 控制器文件:(users\u Controller.rb) (rb): 视图:(show.html.erb) 很明显,这是为了实现功能,但URL映射/路由显然是一团糟。我想知道如何解决……在过去的几天里,我尝试了几种方法,但似乎都不管用。 这是我最接近于让它像在 提前感谢你的帮助 在@Gavin Miller发布以下答案后: 我将routes.r

3天来我一直在努力让它工作。我似乎不明白它为什么不起作用。当用户单击视图上的链接标记时,应在控制器中执行csv功能。相反,我有个例外


这是相关文件

控制器文件:(users\u Controller.rb)

(rb):

视图:(show.html.erb)

很明显,这是为了实现功能,但URL映射/路由显然是一团糟。我想知道如何解决……在过去的几天里,我尝试了几种方法,但似乎都不管用。 这是我最接近于让它像在

提前感谢你的帮助


在@Gavin Miller发布以下答案后:

我将routes.rb文件保存到以下位置:

get 'csv' => 'users#csv'
resources :users 
现在我得到一个例外:

 NameError in Users#show 
 Showing /Users/AM/Documents/RailsWS/bmc_mam/app/views/users/show.html.erb where line #47 raised:
Extracted source (around line #47):

44:         
45:  <%= label_tag(:q, "Parse CSV File:") %><br/>
46:  
47: <%= link_to 'CSV', csv_user_path %>
48:             
49:         
50:         
NameError in Users#show

Showing /Users/AM/Documents/RailsWS/bmc_mam/app/views/users/show.html.erb where line #47    raised:

undefined local variable or method `csv_user_path' for #<#  <Class:0x00000104e7f6f8>:0x00000103a23c68>

Extracted source (around line #47):

44:         
45:             <%= label_tag(:q, "Parse CSV File:") %><br/>
46:             
47:             <%= link_to 'CSV', csv_user_path %>
48:             
49:         
50:         
name用户错误#显示
显示/Users/AM/Documents/RailsWS/bmc#u mam/app/views/Users/show.html.erb,其中第47行出现:
未定义的局部变量或方法“csv\u user\u path”#
提取的源(第47行附近):
44:         
45:
46: 47: 48: 49: 50:
仅声明
资源:用户
只会推断出7个标准RESTful操作1。如果希望
csv
被接受为路由,则必须明确定义它:

get 'csv' => 'controller#action'
其中
controller==users
action==csv


重新处理编辑后的问题。。。您需要将用户对象传递给
csv\u user\u path
函数:

<%= link_to 'CSV', csv_user_path(@user) %>


1 RESTful操作是索引、新建、创建、显示、编辑、更新、销毁,如

所示,仅声明
资源:用户
只会推断出7个标准RESTful操作1。如果希望
csv
被接受为路由,则必须明确定义它:

get 'csv' => 'controller#action'
其中
controller==users
action==csv


重新处理编辑后的问题。。。您需要将用户对象传递给
csv\u user\u path
函数:

<%= link_to 'CSV', csv_user_path(@user) %>


1 RESTful操作包括索引、新建、创建、显示、编辑、更新和销毁,如《Awesome man》中所示。成功了!!!!!!非常感谢!!这两天我都快疯了@班迪金完全了解这种感觉。您还可以运行
rake routes
,查看从路由自动生成的URL。最左边的一列将为您提供一个函数列表,您可以将
\u url
\u path
添加到末尾以生成url。在您的示例中,您将看到左边的一列中有一个名为
csv\u user
的值,谢谢。这是令人鼓舞的。我已经准备好放弃rails,去做点别的事情(不是更糟的;)真棒。成功了!!!!!!非常感谢!!这两天我都快疯了@班迪金完全了解这种感觉。您还可以运行
rake routes
,查看从路由自动生成的URL。最左边的一列将为您提供一个函数列表,您可以将
\u url
\u path
添加到末尾以生成url。在您的示例中,您将看到左边的一列中有一个名为
csv\u user
的值,谢谢。这是令人鼓舞的。我已经准备好放弃rails,去做点别的事情(不是更糟的;)
get 'csv' => 'controller#action'
<%= link_to 'CSV', csv_user_path(@user) %>
resources :users do
  member do
    get 'csv'
  end
end