我正在编写一个程序来管理我的备件集合,其中Spares has_many Spare_parts。
但是我需要一个与给定的
不同的索引视图 spare_spare_parts GET /spares/:spare_id/spare_parts(.:format)
但是独立,比如
spare_parts GET /spare_parts(.:format)
这里的模型
class Spare < ActiveRecord::Base
has_many :spare_parts
serialize :modells
attr_accessible :preis, :storey, :sn, :anmerkung, :modells, :part, :avatar
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/ET/db/images/spare/:style/missing.png"
validates :part, presence: true,
length: { minimum: 2 }
validates :storey, presence: true,
length: { minimum: 3 }
def self.search(search)
if search
find(:all, :conditions => ['part LIKE ? OR modells LIKE ?', "%#{search}%", "%#{search}%"])
else
find(:all)
end
end
end
和
class SparePart < ActiveRecord::Base
belongs_to :spare
serialize :part
attr_accessible :part, :storey, :ebay, :spare_id
end
我已经将我的routes.rb改为
ET::Application.routes.draw do
resources :spares do
resources :spare_parts
end
resources :burners do
resources :burner_items
end
resources :modells
get 'spare_parts' => 'spare_parts#indexall'
root 'spares#index'
和Spareparts_Controller
class SparePartsController < ApplicationController
def indexall
@spares = Spare.all
@spare_parts = @spares.spare_parts.all
end
嗯,这不起作用,以及
class SparePartsController < ApplicationController
def indexall
@spares = Spare.all
@spare_parts = Spare_part.all
end
既不起作用,又给我一个错误
Circular dependency detected while autoloading constant Spare_part
那么如何将所有Spare_parts转到我的Indexall-view?
<h1>Ersatzteile</h1>
<table border="1" cellspacing="10" cellpadding="2" bgcolor="#FFFF00">
<tr>
<th>ID </th>
<th>Beschreibung </th>
<th>Preis </th>
<th>Ebay </th>
<th>Lagerort </th>
<th colspan="1"></th>
</tr>
<tr>
<% @spares.each do |s| -%>
<% @spare_parts.each do |p| -%>
<tr>
<td><%= p.id%></td>
<td><%= p.anmerkung%></td>
<td><%= s.preis%></td>
<td><%= p.ebay%></td>
<td><%= p.storey%></td>
<% end %> </tr>
</table>
答案 0 :(得分:0)
只需拨打@spare_parts = SparePart.all
中的indexall
(而不是Spare_part.all
)。
答案 1 :(得分:0)
在routes.rb中,你应该重复以下条目:spare_parts:do ... end block:spares。
resources :spares do
resources :spare_parts
end
resources :spare_parts
这将创建SparePartsController操作的路径,而不使用备用参数。
def index
@spare_parts = SparePart.joins(:spare)
end
然后你可以离开@spares,并在视图中写:
...
<td><%= p.spare.preis %></td>
...