0

我对 Rails 很陌生,并且不断收到以下错误。任何帮助将不胜感激。请!

错误:NilClass:Class 的未定义方法“model_name”

这是我的会员控制器。

class MembershipsController < ApplicationController

 def new
 end

 def create
  @user = User.find_by_email(params[:email])
  @project = Project.find(params[:project_id])
  @membership = @project.memberships.build(project_id: @project.id, user_id: @user.id)
  redirect_to project_url(@membership.project_id)
 end

end

这是我的会员表格。它嵌套在项目路线下方。

<%= form_for([:project, @membership]) do |f|%>
  <div class="field">
   <%= f.label "Enter the email of the person you'd like to invite:" %>
   <%= text_field_tag :email %>
  </div>

  <div class="actions">
   <%= f.submit "Save", :class=>"btn btn-primary btn-large" %>
  </div>
<% end %>

供您参考,memberships 表是项目表和用户表之间的连接表。

我不知道为什么我不断收到上面的错误。也许我缺少一些东西。请帮忙!谢谢!

4

2 回答 2

0

您的表单应该form_for [@project, @membership]@projectProject 实例,而不是:project.

于 2013-04-23T02:34:11.560 回答
0

找不到@user 或@project 2 个对象之一。虽然结果为零。您不能在 nil 对象上调用方法。为了更好地了解故障对象在哪里记录结果。

Rails.logger.debug @user.inspect
Rails.logger.debug @project.inspect
于 2013-04-23T02:32:06.060 回答