如何在Rails 4中为表创建多个视图

时间:2014-10-27 18:15:33

标签: ruby-on-rails ruby-on-rails-4

我有一张桌子,可以存放最喜欢的用户菜肴。用户可以在表中有多个条目。 我已经生成了一个视图来显示表中的所有条目,但是如何创建一个视图来显示用户列表。我没有保存用户的表,因此我必须使用DISTINCT从我的唯一表中获取用户的名称

2 个答案:

答案 0 :(得分:0)

听起来你有很多关于关系数据库,架构设计和数据建模的知识,所以这个答案可能没什么用,但是这里有...

您应该normalize您的架构并将用户放在他们自己的表中。然后,餐桌会有一个user_id字段,指向用户id的{​​{1}}。

因此,您将拥有belongs_to菜肴的用户模型。和has_many用户的Dish模型。有了这个,你就可以更轻松地为用户创建视图,而无需进行稍微复杂的查询就可以从Dish表中获取数据。

答案 1 :(得分:0)

我的路线必须修好才行..

默认的route.rb看起来像这样

  

ActionController :: Routing :: Routes.draw do | map |
    #优先级基于创建顺序
    #First创建得最高    优先级。

     

#常规路线示例:#map.connect' products /:id',   :controller => '目录&#39 ;,                                   :action => '视图' #请记住,您可以指定#:controller和:action

以外的值      

#命名路线示例:#map.purchase' products /:id / purchase',   :controller => '目录&#39 ;,                                             :action => '购买' #可以使用purchase_url(:id => product.id)

调用此路线      

#您可以通过挂机来排除网站的根目录'' # -   只记得删除public / index.html。 #map.connect'',   :controller => "欢迎"

     

#允许将Web Service WSDL下载为扩展名为

的文件      

#而不是名为' wsdl'的文件map.connect   ':controller / service.wsdl',:action => ' WSDL'

     

#将默认路由安装为最低优先级。 map.connect   ':控制器/:动作/:ID:格式' map.connect   ':控制器/:动作/:ID'   端

我发现本教程很有帮助 http://www.informit.com/articles/article.aspx?p=1087656&seqNum=5