【发布时间】:2013-11-18 11:30:55
【问题描述】:
在我更改视图布局之前,Rails 会正确显示我的登录视图。 但是更改后,我在下面收到错误消息。
NilClass:Class 的未定义方法 `model_name'
在改变之前, “app/views/layouts/application.html.erb”已应用于我的登录视图。
我只想在我的登录视图上更改布局。 因此,“我制作了 app/views/layouts/login.html.erb”并将一些代码放在控制器上。 定义登录 渲染:布局 => '登录' 结束
我猜错误一定来自代码,其中包括@member。
{:action => '登录'}) 做 |f| %>但我不明白为什么。你能给我一些建议吗?
☆成员控制器
def login
render :layout =>'login'
@msg = "get"
@member = Member.new
if request.post? then
@member = Member.new(params[:member])
record = Member.find_by_user(params[:member][:user])
if record == nil then
@msg = "record is nil."
@member.errors.add('user',"not registrated!")
else
if record.pass != params[:member][:pass] then
@msg = "password is wrong."
@member.errors.add('pass','password is wrong!')
else
@msg = "good!"
@member = record
session[:login] = record
redirect_to '/members/' + record.id.to_s
end
end
end
结束
☆layouts/login.html.erb
<!DOCTYPE html>
<html>
<head>
<title>XXXX</title>
<%= stylesheet_link_tag "application", media: "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
<link href="css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<%= render 'layouts/exheader'%>
<div class= "container">
<%= yield %>
</div>
<div class="container">
<%= render 'layouts/footer' %>
</div>
</body>
</html>
☆login.html.erb(会员)
<div class="span4">
<div class="login_form">
<h4>Login</h4>
<%= form_for(@member, :url => {:action => 'login'}) do |f| %>
<% if @member.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@member.errors.count, "error")%>
prohibited this member from being saved:</h2>
<ul>
<% @member.errors.full_messages.each do |msg| %>
<li><%=msg %></li>
<% end %><%# do |msg|%>
</ul>
</div>
<% end %><%# if%>
<div class="field">
<%= f.label :user %>
<%= f.text_field :user %>
</div>
<div class="field">
<%= f.label :pass %>
<%= f.password_field :pass %>
</div>
<div class="actions">
<%= f.submit :value => "login" %>
</div>
<% end %><%# do |f|%>
</div><!-- login form -->
</div><!--span4 for login -->
【问题讨论】:
-
错误出现在哪一行?
-
这一行。 {:action => 'login'}) 做 |f| %>
标签: ruby-on-rails ruby-on-rails-3