0

我是 Rails 开发的新手。这是我的第一个应用程序。我一直在努力克服它。无论如何,这是我的问题。我的模型名称是 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”

4

1 回答 1

1

您的代码中有一些内容违反了约定。

  1. create当您提交带有POST请求的表单时,通常会调用该操作。
  2. 您的表单应以new.html.erb或呈现edit.html.erb
  3. 您的控制器应以复数形式命名。即PostItsController

@posts话虽如此,我认为错误是由于nil. 这可能是因为@posts在错误的控制器操作中被分配,因此在响应呈现表单时根本没有被分配。

于 2013-05-25T21:05:14.737 回答