使用Scaffold& amp;合并两个表Rails(Rails noob)

时间:2011-11-03 17:48:27

标签: ruby-on-rails

我是编码的新手(从未参加过CS课程并对MVC架构有非常极简的理解)并且正在开发一个测试项目来学习它:-)我想设置一些表格表:

表1:

表1 ID |名称| Attribute_1 | Attribute_2 | Attribute_3 |等等

1      | Blah | attribute 1 | attribute 2 | attribute 3 |

表2:

表2 ID |技巧|

 1       | nun_chucks  |
 2       |     bow     |
 3       |     arrow   |

表3:

表_3 ID | Primary_1 ID | Primary_2 ID |

 1     |     1        |      1       |
 2     |     1        |      2       |
 3     |     1        |      3       |

然后能够可视化数据,使其如下所示:


姓名|双节棍,弓,箭|属性1 |属性2 |属性3 |


我使用Scaffold为表1和表创建了MVC。 2,每个都有#page。我不知道如何将它们组合起来创建表3,然后按照我的要求显示数据。

谢谢!

3 个答案:

答案 0 :(得分:1)

这是您正在做的事情的一个很好的参考:http://guides.rubyonrails.org/association_basics.html

答案 1 :(得分:0)

INNER JOIN就是您想要的数据库操作。

查看数据库服务器手册并阅读它。

本质上,它需要两个表,通过给定列连接它们(例如,Table_2.ID和Table_3.ID),并吐出两个连接表的摘要,从而省略表中不匹配的列。

答案 2 :(得分:0)

举个例子, 以及Rails 3中的以下控制器

class SomeController < ActionController
   def show
       @table_1 = Table1.find(params[:id],:include => :table2)
       # Table1 and Table2 are your models
       # where table2 would be your has_many_and_belongs_to_many assoc in Table1
   end
end

你可以在show.html.erb中写一下

<%= @table_1.name %>
<%= @table_1.table_2.map(&:skill) %>
<%= @table_1.attribute_1 %>    
<%= @table_1.attribute_2 %>
<%= @table_1.attribute_3 %>