Ruby on rails ActionController::路由错误
我只是在学习Rails。我遇到了一个路由错误,尽管我认为我已经在routing.rb中指定了正确的规则。我已附上代码。请帮忙 routes.rbRuby on rails ActionController::路由错误,ruby-on-rails,routing,Ruby On Rails,Routing,我只是在学习Rails。我遇到了一个路由错误,尽管我认为我已经在routing.rb中指定了正确的规则。我已附上代码。请帮忙 routes.rb map.connect ':controller/:action' map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' 控制器 class EntriesController < ApplicationControll
map.connect ':controller/:action'
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
控制器
class EntriesController < ApplicationController
def sign_in
@name = params[:visitor_name]
end
end
class EntriesController
查看
<html>
<head><title>Hello <%=h @name %></title></head>
<body>
<%=h @name %>
<% form_tag :action => 'sign_in' do %>
<p>Enter your name:
<%= text_field_tag 'visitor_name', @name %></p>
<%= submit_tag 'Sign in' %>
<% end %>
</body>
</html>
你好
“登录”do%>
输入您的姓名:
谢谢您的
表单标签
需要指定控制器和操作。因此:
<%= form_tag :controller => 'entries', :action => 'sign_in' do %>
'entries',:action=>'sign_in'do%>
请注意,用Rails的术语来说,这是一种非常老式的方式,我建议您在指南中学习RESTful路线。您必须在路线中包含folling。rb
map.resources :entries, :collection=>{:sign_in=>:post}
重新启动服务器
<% form_tag :controller=>'entries' , :action => 'sign_in' do %>
'entries',:action=>'登录'do%>
如果仅在entries文件夹中查看,则无需指定控制器名称,默认情况下,它将接受该名称。只要写
<% form_tag :action => 'sign_in' do %>
“登录”do%>
他根本不需要包含这些内容。从他的routes.rb文件可以清楚地看出,他没有使用RESTful路由。谢谢你的回答,但它仍然不起作用。我将map.resources添加到routing.rb,它是我的entries文件夹中的唯一视图。我添加了控制器名称,但它仍然不起作用:(您的视图模板文件名是什么?它在哪里?嗨,John…它起作用了:)感谢您对RESTful路由的建议:)