Ruby on rails 未定义的方法`model#u name';课程名称:Clas

Ruby on rails 未定义的方法`model#u name';课程名称:Clas,ruby-on-rails,devise,Ruby On Rails,Devise,我在Rails3.2中使用Desive时遇到了一个错误-我的观点是在下面的第1行(用户)中使用了未定义的方法。此视图是登录用户的编辑配置文件页面 到目前为止,我已经尝试将其更改为当前_用户,并在我的控制器中定义它,我在下面提供了控制器,但这不起作用 我唯一的另一个怀疑是,表单_for不适合在本页上使用 <%= form_for(@user) do |f| %> <% if @user.errors.any? %> <div id="error_expla

我在Rails3.2中使用Desive时遇到了一个错误-我的观点是在下面的第1行(用户)中使用了未定义的方法。此视图是登录用户的编辑配置文件页面

到目前为止,我已经尝试将其更改为当前_用户,并在我的控制器中定义它,我在下面提供了控制器,但这不起作用

我唯一的另一个怀疑是,表单_for不适合在本页上使用

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :username %><br>
    <%= f.text_field :username %>
  </div>
  <div class="field">
    <%= f.label :firstname %><br>
    <%= f.text_field :firstname %>
  </div>
  <div class="field">
    <%= f.label :lastname %><br>
    <%= f.text_field :lastname %>

禁止保存此用户:



我的控制器。。。(正如我所说,我尝试了当前用户)

class UsersController
Desive附带了一个
当前用户
助手方法。您可能不想覆盖它,因此我建议从控制器中删除该方法。在我的一个应用程序中,我允许用户编辑他们的信息,这是我的
edit
方法:

def edit
  @user = current_user
end

仔细检查
@user
是否为零:您必须在
编辑
操作中添加
@user
,或者直接向方法添加id,或者使用一些筛选器,因为您有私有的
设置用户
方法,即在设置筛选器之前添加
:设置用户,only::edit
ir类似的内容。@zrl3dx我在\u filter之前添加了一个新错误:“找不到没有ID的用户”与私人中的set\u User方法冲突
def edit
  @user = current_user
end