Project的未定义方法`model_name':Class

Dmi*_*kov 13 ruby ruby-on-rails

我已经查看了所有相关问题,但这里对我来说没什么新鲜事.

我有一个带有"新"动作的Project控制器

class ProjectsController < ApplicationController
  def new
    @newproject = Project.new
  end
end
Run Code Online (Sandbox Code Playgroud)

Project是一个简单的类,不是活动记录:

class Project
  attr_accessor :name, :description
  def initialize
    @name = ""
    @description = ""
  end
end
Run Code Online (Sandbox Code Playgroud)

我得到错误"未定义的方法`model_name'为Project:Class"

这是一个erb文件示例:

<%= form_tag(@newproject)  do |f| %>
  <%= f.label :name %>:
  <%= f.text_field :description %><br />
<% end %>
Run Code Online (Sandbox Code Playgroud)

Vik*_*rón 33

如果Project不是活动记录子类,则需要这些,您可以使用 form_for

class Project
  extend ActiveModel::Naming
  include ActiveModel::Conversion
  def persisted?
    false
  end
  ...
end
Run Code Online (Sandbox Code Playgroud)

视图:

<%= form_for(@newproject)  do |f| %>
  <%= f.label :name %>:
  <%= f.text_field :description %><br />
<% end %>
Run Code Online (Sandbox Code Playgroud)