rails error--用于NilClass的未定义方法`model_name':Class

时间:2013-05-25 20:48:24

标签: ruby ruby-on-rails-3.2

我是rails开发的新手。这是我的第一个应用程序。而且我一直在努力。无论如何这是我的问题。我的modelname是PostIt,我的控制器是post_it_controller.rb

class PostItController < ApplicationController

def create
 @user = User.find(params[:id])
 @posts = Postit.create(params[:content])
 @posts.receiver_id = params[:content][:receiver_id]
 @posts.sender_id = current_user.id
end

在我看来,我在create.html.erb

中有这个
<%= form_for(@posts) do |f| %>  
<%= f.hidden_field :receiver_id, :value => @user %>  
<%= f.label :content %>  
<%= f.text_area :content, :class => 'inputbox' %>  
<%= f.submit "Submit", :class => 'btn right' %>
<% end %>

我不断得到的错误是NilClass:Class

的未定义方法`model_name'

1 个答案:

答案 0 :(得分:1)

您的代码中有一些违反惯例的内容。

  1. 当您使用create请求提交表单时,通常会调用POST操作。
  2. 您的表单应以new.html.erbedit.html.erb
  3. 呈现
  4. 您的控制器应以复数形式命名。即PostItsController
  5. 话虽如此,我认为错误是由于@postsnil。这可能是因为在错误的控制器操作中分配了@posts,因此在响应呈现表单时根本没有分配。