2

モデルの注文があります。インデックスでは、current_user に注文のみのインデックスを表示させたいと考えています。オーダーは、admin_user に属しています。AdminUser has_many :orders. それが違いを生む場合、私は自分のアプリでactiveadminを使用しています。このエラーが発生しています:

Couldn't find Order without an ID

エラーが発生している行は、注文コントローラーの 2 行目です (不要な情報を編集)。

index do 
    @order = Order.where(admin_user_id: current_admin_user.id, order_id: resource.id)
     column "ID" do |order|
      link_to order.id, admin_order_path(order)
     end
    column "Proof" do |order|
     image_tag order.proof_url(:proof).to_s
        end
        column "Name" do |order|
      link_to order.name, admin_order_path(order)
    end
    column(:customer, :sortable => :customer_id)
        column "Category", :order_category
        column "Status", :order_status
        column "Priority", :order_priority 
    column "Due Date", :end_date
    default_actions
  end

これは@jameswからリクエストされた私の注文モデルです

class Order < ActiveRecord::Base
  attr_accessible :color_back, :color_front, :color_sleeve, :end_date, :name, :start_date, :whiteboard, :customer_id, :order_category_id, :order_type_id, :order_status_id, :order_priority_id, :print_location_id, :artwork, :proof, :line_items_attributes, :assignee_id, :admin_user_id

  mount_uploader :artwork, ArtworkUploader
  mount_uploader :proof, ProofUploader


  has_many :line_items
  belongs_to :assignee, :class_name => "AdminUser"
  belongs_to :customer
  belongs_to :order_category
  belongs_to :order_type
  belongs_to :order_status
  belongs_to :order_priority
  belongs_to :print_location
  belongs_to :admin_user
  accepts_nested_attributes_for :line_items, :allow_destroy => true

  scope :owned_by, lambda { |user| includes(:assignee).where("admin_users.id = ?", user.id) }



  def default_values
    if new_record?
      self.start_date ||= Date.today
      self.number ||= (Order.maximum(:number) + 1 rescue 1)
    end
  end
end
4

3 に答える 3

0

Orders テーブルを でフィルタリングしようとしているようですorder_id。非標準的な方法で DB を構築していない限り、通常、orders テーブルの ID フィールドはid(not order_id) になります。

その問題はさておき、インデックスアクションのオーダーIDを渡したいとは思わない.1つのレコードしか返さないため、インデックスアクションは本質的に多くのレコードをリストする必要がある(あなたの場合、current_admin_userのすべてのレコード) .

どちらの問題でも問題が解決しない場合は、行を 1 つずつコメントアウトしてみてください。

于 2013-05-21T00:47:02.860 に答える