所以我想從這個下拉菜單中選擇或基本過濾一些基於工作類別的圖紙。兩種模型(圖紙和工作類別)都與has_many圖紙和belongs_to工作類別相關聯。繪圖持有workcategory.id爲外鍵,我想通過it.This過濾是我一直試圖建立從HTML的導軌路由列表過濾器
<% @workcategories.each do |workcategory| %>
<li><%= link_to workcategory.name, workcategory_list_path(workcategory.id) %></li>
<% end %>
雖然附圖控制器我已經添加了這些:
before_filter :list
def list
@drawingsz = Drawing.order("drawings.id ASC").where(:workcategory_id => @workcategory.try(:id))
end
問題是,每當我按插入的工作類別之一,它就會顯示我所有的圖紙。我已經嘗試過從這個基本變化到其他人,包括一些路線。哦,談談路線,我有這個:
resources :workcategories do
get :list, :controller => :drawings
resources :drawings
end
resources :drawings
有什麼想法嗎?我昨晚瀏覽了很多論壇,還有官方網站上的路線頁面,但我無法擺脫它。我想要的頁面基本上是這樣的:/ workcategory.name /圖紙。謝謝 !!
更新 - 添加控制器
class DrawingsController < ApplicationController
before_action :find_drawing, only: [:edit, :update, :destroy]
before_filter :list
def index
@drawings = Drawing.all.order("created_at DESC")
end
def new
@drawing = Drawing.new
end
def create
@drawing = Drawing.new(drawing_params)
if @drawing.save
flash[:notice] = "Drawing created"
redirect_to(:action=>'index', :drawing_id => @drawing.id)
else
@drawings = Drawings.order()
render('new')
end
end
def edit
end
def update
if @drawing.update_attributes(drawing_params)
flash[:notice] = "Drawing updated."
redirect_to(:action=>"index")
else
render("edit")
end
end
def destroy
@drawing.destroy
redirect_to drawings_path
end
def list
@drawingsz = Drawing.order("drawings.id ASC").where(:workcategory_id => @workcategory.try(:name))
end
private
def find_drawing
@drawing=Drawing.find(params[:id])
end
def drawing_params
params.require(:drawing).permit(:name, :description, :image)
end
end
查看更新 這是新的視圖更新 - 這是不行的,因爲另一個錯誤。
<% @workcategories.each do |workcategory| %>
<li><%= link_to workcategory.name, {:controller => 'drawings', :action => 'list', :workcategory_id => workcategory.id } %></li>
<% end %>
我已經更新列表,以這樣的:
def list
@workcategory_id = params[:workcategory_id]
if @workcategory_id
@drawingz = Drawing.find(params[:workcategory_id]).workcategory_id
end
end
現在我得到的錯誤
繪圖無法找到與 'ID'= 2015
這很奇怪,因爲2015年是在名稱中,而不是在ID中。我覺得我現在更接近了,但還是有一些東西丟失....
現在,我想起來,它可能會更有意義的路由像圖紙/ workcategory.name ...我也嘗試過,但沒有成功 –
請顯示您的觀點和完整的控制器 – nsave
你好,我已經路由添加了控制器,但我不知道你的意思是什麼,那裏有更多的文件。任何一個特別的? –