2014-10-29 61 views
0

我會將這個兩個問題放在同一主題中,因爲有更多人質疑同一個問題。如何製作儀表板並關聯兩個模型

  1. 我想分配OrderUser,然後在視圖Orders.index打印與用戶相關聯的所有訂單列表中的

我的模型:

class Order < ActiveRecord::Base 
       belongs_to :user 


class User < ActiveRecord::Base 
       has_many :orders 
devise :database_authenticatable, :registerable, :recoverable, 
            :rememberable, :trackable, :validatable 
end 

然後在查看我做的:

<% @users.each do |user| %> 
<tr> 
    <td><%= user.order.name %></td> 
<tr> 

我得到未定義的方法eachnil:NilClass錯誤。我怎樣才能以正確的方式做到這一點?

是的,我是一個初學者,我被困在這有點太長。

  • 我是在儀表板非常簡單的應用程序的,我沒有走遠。 問題:製作儀表板的最佳方法是什麼?比方說,我想提出的更多的車型上的信息:

    • 客戶的訂單列表
    • 在右上角的用戶控件(設計)
    • 每個訂單
    • 一些分析數據
  • 你會怎麼做這樣的儀表板?像往常一樣,所有數據都將與用戶相關聯 - 當您登錄到應用程序時,您會看到數據。

    +0

    你如何收集'@ users'中的用戶列表?同樣精確地分享您的控制器的操作代碼。還分享Popup模型代碼。 – 2014-10-29 13:20:08

    +0

    1.什麼是@ @用戶,你如何填充它? 2。你在談論你的問題中的命令,但在你的觀點,你使用的彈出窗口。 3.用戶'activeadmin'或'railsadmin'用於儀表板排序的事情,就管理儀表板而言,它們非常方便。 – 2014-10-29 13:26:58

    +0

    *如果你看到它,忽略以前的評論,這是不正確的*爲什麼你沒有has_many:用戶模型中的訂單?什麼是彈出窗口,它與涉及問題1的任何事情有什麼關係?另外,你的彈出關聯被標以複數形式(它應該是.popups)。既然它是'has_many',你正在檢索一個'popups'數組,並且在這個集合上調用'.name'將不起作用;你必須迭代'popups'數組並且在每個元素上調用'.name'。 – 2014-10-29 14:43:54

    回答

    0
    1. 您是否將變量@users分配給控制器中的User.all?雖然.all已被棄用,所以也許User.unscoped更好。

      class YourController < ApplicationController 
          def index 
          @users = User.unscoped 
          end 
      end 
      

    爲什麼你說的has_many:彈出式廣告和沒有的has_many:訂單?如果你沒有專門指定一個類,它需要匹配另一個模型的名稱。或者,如果這是另一種關係,那麼您還需要將has_many:訂單添加到您的用戶模型中。然後在您的視圖:

    <% @users.each do |user| %> 
        <tr> 
        <td><%= user.order.name %></td> 
        </tr> 
    
  • 這是一個非常通用的問題。我想你會更好地閱讀一些指南,然後放手。然後,任何特定問題都會發布到堆棧上。
  • +0

    對不起,彈出窗口是拼寫錯誤。 Popup =訂單 – JohnDoeTheOne 2014-10-29 17:43:55

    相關問題