Ruby on rails 显示数据表HABTM realationship的Rails
我是rails新手,不知道如何使用HABTM关系显示数据。 1.目前的情况是,我正在尝试创建一个简单的工具,在这个工具中,我有指定型号的设备,每个型号都可以有特定的备件。 2.我已经设法创建了HABTM关系和表格,以便将模型分配给备件,并将其保存到数据库中。 2.我希望能够为设备创建票证,在创建票证期间,用户应该能够订购备件,但只能从该特定型号od设备的零件列表中订购!。 3.在创建票证的过程中,我遇到了一个难题,就是如何只显示特定型号设备的部件,而我将model_id作为url中的parm传递。也许毕竟要将它保存到DataEase,我需要使用额外的HABTM表格部件,但现在我只想知道如何显示它。 4.我得到的是未定义的“模型”方法 在此问题上,非常感谢您的建议和帮助 模型看起来像:Ruby on rails 显示数据表HABTM realationship的Rails,ruby-on-rails,has-and-belongs-to-many,Ruby On Rails,Has And Belongs To Many,我是rails新手,不知道如何使用HABTM关系显示数据。 1.目前的情况是,我正在尝试创建一个简单的工具,在这个工具中,我有指定型号的设备,每个型号都可以有特定的备件。 2.我已经设法创建了HABTM关系和表格,以便将模型分配给备件,并将其保存到数据库中。 2.我希望能够为设备创建票证,在创建票证期间,用户应该能够订购备件,但只能从该特定型号od设备的零件列表中订购!。 3.在创建票证的过程中,我遇到了一个难题,就是如何只显示特定型号设备的部件,而我将model_id作为url中的parm传递
class Model < ActiveRecord::Base
has_and_belongs_to_many :parts
accepts_nested_attributes_for :parts
end
class Device < ActiveRecord::Base
belongs_to :model
end
class Part < ActiveRecord::Base
has_and_belongs_to_many :models
has_and_belongs_to_many :order_tickets
accepts_nested_attributes_for :models
end
my tickets/_form.html.erb看起来像:
<%= form_for(@ticket) do |f| %>
<% if @ticket.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@ticket.errors.count, "error") %> prohibited this ticket from being saved:</h2>
<ul>
<% @ticket.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :title %><br>
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :counter %><br>
<%= f.number_field :counter %>
</div>
<div class="field">
<%= f.label :issue %><br>
<%= f.text_area :issue %>
</div>
<!-- Here i want to display the spare parts only for the specific model -->
<% Part.models(:model_id).each do |x| %>
<%= x.name %>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
在控制器中的实例变量中检索模型,然后以您可以使用的形式检索模型:
注意:Model不是保留字,但我建议不要将其用作类名。我已将def commonstuff@Model=Model.findparams[:Model\u id]end放在tickets控制器中,在\u操作:commonstuff之前。但是现在得到nil:NilClassHi的:undefined方法'parts',那么您应该检查db中的模型实例是否与您正在传递的id值匹配。当我只是想打印模型变量时,我观察到了一些其他的东西,它仍然显示为Nil,所以我想这是导致问题的原因。。。
<% @model.parts.each do |x| %>
<%= x.name %>
<% end %>