【问题标题】:Rails Error "expected ...model.rb to define Model"Rails 错误“预期 ...model.rb 定义模型”
【发布时间】:2012-01-02 21:41:48
【问题描述】:
class ItemController < ApplicationController

  def create
    item = current_user.items.build(params[:presentstem])
    item.created_at = Time.now
    item.save!
    redirect_to root_path
  end

  def destroy

  end

end

和我在views/home/index/html.erb中的表单添加一个项目

<div id="add_item">
    <p>Add a new item</p>
    <% form_for Item.new do |f| %>
        <div id="add_item_container">
        <%= f.text_field :present %>
        <%= f.text_field :stem %>
        <%= f.text_field :secondary %>
        <%= f.check_box :atype %>
        <%= f.text_field :comment %>
        </div>
        <%= f.submit "Add to List" %>
    <% end %>
</div>

我如何定义Item

在 localhost:3000 我得到

预期 /Users/user/Desktop/test/app/models/item.rb 来定义项目
提取的源代码(第 3 行附近):

【问题讨论】:

    标签: ruby-on-rails ruby model-view-controller model


    【解决方案1】:

    你想错了。

    你在 app/models/item.rb 中有一个模型

    为此,您在 app/controllers/items_controller.rb 中有一个控制器

    并且您在 app/views/items/template.haml 中有视图

    如果你想做一个 form_for 你为一个对象做一个表单。 rails 正在查看您想要参与的操作类型(新建、更新)并自动生成路线(restful)。

    所以你只是给 form_for 助手一个对象

    #in view
    =form_for Item.new do |f|
    

    #in items_controller.rb
    def new
      @item = Item.new
    end
    
    #in new.haml
    =form_for @item
    

    【讨论】:

      【解决方案2】:

      你应该在这个文件/Users/user/Desktop/test/app/models/item.rb中有Item类定义,可能你没有......

      class Item < ActiveRecord::Base
        #class definition goes here
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多