0

我在 Rails 中创建了一个应用程序“留言簿”,然后使用“rails g 控制器条目”创建了一个控制器。之后,我在 app/views/entries/ 中创建了 index.html,并在其中写了以下内容:-

 <h1>Hello <%= @name %></h1>
<%= form_tag :action => 'sign_in' do %>
<p>Enter your name:
<%= text_field_tag 'visitor_name', @name %></p>
<%= submit_tag 'Sign in' %>
<% end %>

在entry_controller.rb 中写着:-

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

之后,当我运行“rails s”并转到:-

localhost:3000/entries/

它向我展示了应该存在的正确视图。

当我输入名称并按下按钮时,它会路由到localhost:3000/entries/sign_in并显示以下错误:-

模板丢失

缺少带有 {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]} 的模板条目/sign_in、application/sign_in。搜索:*“/home/redblink/rbtest/guestbook/app/views”

请让我知道发生了什么事???

4

2 回答 2

0

/home/redblink/rbtest/guestbook/app/views/sign_in.html.erb您必须使用要向用户显示的内容创建一个 ERB 模板。

于 2012-08-02T13:50:46.547 回答
0

使固定:

发生此错误是因为 rails 服务器无法sign_in.html.erbapp/views/entries目录中找到具有名称的模板。你应该创建它。

解释:

默认情况下,rails 会尝试查找与您的操作具有相同名称的模板,即在您的情况下为 sign_in。如果您不想创建或呈现此默认模板,则需要通过render在您的操作中使用方法来指定另一个要呈现的模板。render方法在 ActionController::Base 类中定义

于 2012-08-03T06:30:45.630 回答