Ruby on rails RubyonRails-建立多对多连接后-如何显示数据

Ruby on rails RubyonRails-建立多对多连接后-如何显示数据,ruby-on-rails,associations,relationship,has-and-belongs-to-many,Ruby On Rails,Associations,Relationship,Has And Belongs To Many,在这个网站的帮助下,我建立了多对多的关系。 我在模型中添加了has\u和\u属于\u许多人 现在我想在屏幕上显示该对象的数据 我想我应该在html.erb中这样做 假设我希望它出现在索引表单和编辑/新建表单中 我怎样才能呈现这个呢? 谢谢 编辑: 我有两个目标: i、 e.人和状态-一个人可以有许多状态) 我希望有一个屏幕,可以显示此人的所有状态,另一个屏幕可以添加其他状态。 正如我提到的,我创建了这样的rb脚本(两个都有) 结束 在模型中添加了很多成分 如何更新gui的代码? 谢谢您应该看看本

在这个网站的帮助下,我建立了多对多的关系。
我在模型中添加了has\u和\u属于\u许多人
现在我想在屏幕上显示该对象的数据
我想我应该在html.erb中这样做
假设我希望它出现在索引表单和编辑/新建表单中

我怎样才能呈现这个呢? 谢谢

编辑:
我有两个目标:
i、 e.人和状态-一个人可以有许多状态)
我希望有一个屏幕,可以显示此人的所有状态,另一个屏幕可以添加其他状态。
正如我提到的,我创建了这样的rb脚本(两个都有)

结束 在模型中添加了很多成分

如何更新gui的代码?
谢谢

您应该看看本指南:

如果没有与此关联关联的模型/资源的名称,我将无法进一步帮助您。如果您想要更准确的答案,请提供

好的,在编辑问题之前回答

因此,您希望在您的个人和状态模型之间建立一个“has_和_-allown_-to_-many”关联。因此,在你的“人”模型中,你应该有:has_和_属于多个州。在你的“状态”模型中,你应该有:has_和_属于_many:people(人称的复数形式)。您的具有“has_和_belies_to_many”关联的联接表必须是“people_states”,您实际上没有选择权,因为这是一种约定


您还可以查看“它提供了有用的信息”

您应该看看本指南:

如果没有与此关联关联的模型/资源的名称,我将无法进一步帮助您。如果您想要更准确的答案,请提供

好的,在编辑问题之前回答

因此,您希望在您的个人和状态模型之间建立一个“has_和_-allown_-to_-many”关联。因此,在你的“人”模型中,你应该有:has_和_属于多个州。在你的“状态”模型中,你应该有:has_和_属于_many:people(人称的复数形式)。您的具有“has_和_belies_to_many”关联的联接表必须是“people_states”,您实际上没有选择权,因为这是一种约定


您还可以查看“它提供了有用的信息”

如果你有一个人可以有多种状态,那么简单如下:

模型 person.rb

has_many :states
state.rb

belongs_to :person
您生成的迁移:

rails generate model State person_id:integer name:string
rails generate model Person name:string
如果您需要向此人添加此
个人id
外键,只需执行以下操作:

rails generate migration Add_Person_ID_To_States person_id:integer
rake db:migrate

通常不需要
has\u和\u belient\u to \u many

如果你有一个人可以有多种状态,那么就简单如下:

模型 person.rb

has_many :states
state.rb

belongs_to :person
您生成的迁移:

rails generate model State person_id:integer name:string
rails generate model Person name:string
如果您需要向此人添加此
个人id
外键,只需执行以下操作:

rails generate migration Add_Person_ID_To_States person_id:integer
rake db:migrate

通常不需要
has\u和\u属于\u many

Kulgar的回答涉及建立关系,这是正确的。有了这些信息,您可以在视图中显示如下信息:

<%= @person.name %>
<ul>
  <% @person.states.each do |state| %>
    <li><%= state.name %></li>
  <% end %>
</ul>
<%= @person.name %>
<% @person.states.each do |state| %>
  <%= render state %>
<% end %>
您可以进一步添加用于显示State类的局部视图,并在视图中引用它:

<%= @person.name %>
<ul>
  <% @person.states.each do |state| %>
    <li><%= state.name %></li>
  <% end %>
</ul>
<%= @person.name %>
<% @person.states.each do |state| %>
  <%= render state %>
<% end %>

这将使用_state.html.erb呈现局部变量,并将局部变量状态传递给它


所有这一切的重要部分是,
@person.states
将指与此人关联的状态:)

Kulgar的回答涉及建立关系,这是正确的。有了这些信息,您可以在视图中显示如下信息:

<%= @person.name %>
<ul>
  <% @person.states.each do |state| %>
    <li><%= state.name %></li>
  <% end %>
</ul>
<%= @person.name %>
<% @person.states.each do |state| %>
  <%= render state %>
<% end %>
您可以进一步添加用于显示State类的局部视图,并在视图中引用它:

<%= @person.name %>
<ul>
  <% @person.states.each do |state| %>
    <li><%= state.name %></li>
  <% end %>
</ul>
<%= @person.name %>
<% @person.states.each do |state| %>
  <%= render state %>
<% end %>

这将使用_state.html.erb呈现局部变量,并将局部变量状态传递给它


所有这一切的重要部分是,
@person.states
将指与此人关联的状态:)

我认为您需要展示更多关于如何建立关系的信息。否则,您可能只想使用
有许多
属于
。我们怎么能从你的问题中知道不建议这样做呢?谢谢-添加了一些数据我不明白
声明的目的是什么。这太含糊不清了。即使您在问题中添加了数据,它仍然是不明确的。我看不出
origin\u id
component\u id
与您的
states
表有何关联。在rails中,可以在模型中设置关系。有人可以为你提供一个简单的答案来阅读协会指南,这对他有好处,也许他会得到一张选票(不是我的),但你的问题需要更多的努力——无论如何,去阅读指南吧。我认为你需要展示更多关于如何建立关系的信息。否则,您可能只想使用
有许多
属于
。我们怎么能从你的问题中知道不建议这样做呢?谢谢-添加了一些数据我不明白
声明的目的是什么。这太含糊不清了。即使您在问题中添加了数据,它仍然是不明确的。我看不出
origin\u id
component\u id
与您的
states
表有何关联。在rails中,可以在模型中设置关系。有人可以为你提供一个简单的答案来阅读协会指南,这对他来说很好,也许他会得到一张赞成票(不是我的),但你的问题需要更多的努力——不管怎样,还是去阅读指南吧。我不确定Rails在其惯例中如何与“person”的复数形式一起工作。我希望它知道person的复数形式是people。在处理模型和约定时,我不确定它是否知道..我不确定他是否真的希望在这种情况下有一个联接表,但对编辑您的解决方案投赞成票,以解释他应该如何使用itI我不确定Rails在约定中如何处理“person”的复数形式。我希望它知道person的复数形式是people。在处理模型时