0

我已将特定视图绑定到非数据库模型。

这是模型

class ShelfDetailStep

  attr_accessor :leftMostBinId, :numberOfBins    


end

这是从控制器获取对象的视图

<%=  form_for @shelfDetailObject,  :as => :ShelfDetailStep, :url => { :action  =>  "validate_random_bin" } do  |f| %>       
            <div>Enter the number of bins in the shelf  </div>
            <%= f.text_field :numberOfBins %>
            <%= submit_tag  'Enter' %>
        <%  end  %>

对象shelfDetailObject是从控制器创建的。这里只是添加<%= form_for @shelfDetailObject..%>了一个未定义的model_name错误。我必须添加 <% form_for @shelfDetailObject, :as => :ShelfDetailStep...%>才能使其正常工作。

当代码示例通常只使用 objectName 将视图绑定到模型时,为什么我必须这样做?当我尝试将对象命名为@shelfDetailStep 时,这不起作用。

4

1 回答 1

0

您可以使用主动模型的力量。只需为该类添加您想要的模块。

在 ShelfDetailStep 类中添加以下行

include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
于 2013-05-10T12:19:31.040 回答