Ruby on rails 显示数据表HABTM realationship的Rails

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传递

我是rails新手,不知道如何使用HABTM关系显示数据。 1.目前的情况是,我正在尝试创建一个简单的工具,在这个工具中,我有指定型号的设备,每个型号都可以有特定的备件。 2.我已经设法创建了HABTM关系和表格,以便将模型分配给备件,并将其保存到数据库中。 2.我希望能够为设备创建票证,在创建票证期间,用户应该能够订购备件,但只能从该特定型号od设备的零件列表中订购!。 3.在创建票证的过程中,我遇到了一个难题,就是如何只显示特定型号设备的部件,而我将model_id作为url中的parm传递。也许毕竟要将它保存到DataEase,我需要使用额外的HABTM表格部件,但现在我只想知道如何显示它。 4.我得到的是未定义的“模型”方法

在此问题上,非常感谢您的建议和帮助

模型看起来像:

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 %>