我在rails中创建了一个应用程序“guestbook”,然后我使用“rails g controller entries”创建了一个控制器。之后我在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 %>
并在entries_controller.rb中写道: -
class EntriesController < ApplicationController
def sign_in
@name = params[:visitor_name]
end
end
之后我运行“rails s” 并转到: -
localhost:3000/entries/
它告诉我一个应该存在的正确观点。
当我输入名称并按下按钮时,它会路由到localhost:3000/entries/sign_in
并显示以下错误: -
缺少模板
缺少模板条目/ sign_in,application / sign_in {:locale =&gt; [:en],:formats =&gt; [:html],:handlers =&gt; [:erb,:builder,:coffee]} 。搜索:*“/ home / redblink / rbtest / guestbook / app / views”
请让我知道发生了什么???
答案 0 :(得分:0)
您必须在/home/redblink/rbtest/guestbook/app/views/sign_in.html.erb
中创建一个ERB模板,其中包含您要向用户显示的内容。
答案 1 :(得分:0)
<强>修正:强>
发生此错误是因为rails服务器无法在sign_in.html.erb
目录中找到名为app/views/entries
的模板。你应该创建它。
<强>解释强>
默认情况下,rails尝试查找与您的操作具有相同名称的模板,例如您的情况下为sign_in。如果您不想创建或呈现此默认模板,则需要在操作中使用render
方法指定要呈现的另一个模板。 render
方法在ActionController :: Base类中定义