Rails 3路由错误 - "无路由匹配"

Ran*_*eis 2 ruby routing ruby-on-rails

我正在关注O'Reilly Rails的书,但它是为Rails 2创建的,所以我认为这就是错误所在.

在app/views/entries/sign_in.html.erb中:

<html>
<head><title>Hello <%=h @name %> </title> </head>
<body>
<h1> Hello <%=h @name %></h1>

<%= form_tag :action => 'sign_in' do %>
   <p>Enter your name:
   <%= text_field_tag 'visitor_name', @name %> </p>
   <%= submit_tag 'Sign in' %>
   <% end %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在app/controllers/entries_controller.rb中:

  class EntriesController < ApplicationController
     def sign_in
        @name = params[:visitor_name]
     end

   end
Run Code Online (Sandbox Code Playgroud)

当我点击"登录"按钮时,它会转到一个页面,上面写着:

路由错误

没有路线匹配"/ entries/sign_in"

我会发布我的routes.rb文件,但似乎除了这一行之外它都被注释掉了:

得到"entries/sign_in"

这个文件似乎与他们在书中引用的文件不同,所以我认为这就是问题所在.

谢谢你的帮助!

Ski*_*ick 5

如果您正在学习Rails,您会发现使用与您正在学习的书相同版本的Rails要容易得多.要么在Rails 2中学习,要么在以后升级到3,要么获得一本新书.

Rails 2和3之间存在很多差异,因此您将花费所有时间与此类事情混淆.