14

関連するすべての質問に目を通しましたが、ここでは何も新しいことはありません。

「新しい」アクションを持つプロジェクトコントローラーがあります

class ProjectsController < ApplicationController
  def new
    @newproject = Project.new
  end
end

プロジェクトは単純なクラスであり、アクティブなレコードではありません:

class Project
  attr_accessor :name, :description
  def initialize
    @name = ""
    @description = ""
  end
end

「Project:Class の undefined method `model_name'」というエラーが表示されます

これは erb ファイルのサンプルです。

<%= form_tag(@newproject)  do |f| %>
  <%= f.label :name %>:
  <%= f.text_field :description %><br />
<% end %>
4

4 に答える 4

33

Project がアクティブなレコード サブクラスでない場合は、これらが必要であり、使用できます。form_for

class Project
  extend ActiveModel::Naming
  include ActiveModel::Conversion
  def persisted?
    false
  end
  ...
end

見る:

<%= form_for(@newproject)  do |f| %>
  <%= f.label :name %>:
  <%= f.text_field :description %><br />
<% end %>
于 2012-05-30T21:16:38.507 に答える
3
class Project < ActiveRecord::Base
于 2012-05-30T20:29:48.627 に答える
3

記録のために-これがその問題のRailscastです:

http://railscasts.com/episodes/219-active-model

于 2013-01-09T23:26:10.603 に答える