1
在我的模型使用STI這樣STI和控制器
車輛型號:vehicle.rb
class Vehicle < ActiveRecord::Base
end
汽車模型:car.rb
class Car < Ad
end
巴士模型:bus.rb
class Bus < Ad
end
這是最有效的方法只使用一個控制器?
感謝
在我的模型使用STI這樣STI和控制器
車輛型號:vehicle.rb
class Vehicle < ActiveRecord::Base
end
汽車模型:car.rb
class Car < Ad
end
巴士模型:bus.rb
class Bus < Ad
end
這是最有效的方法只使用一個控制器?
感謝
在我看來,最好的辦法是做這樣的:(我不知道這是否是最好的,更有效的方式)
第一。添加一些新航線:
resources :cars, :controller => "vehicle", :type => "Car"
resources :buses, :controller => "vehicle", :type => "Bus"
添加一個私有方法來你的控制器到您的Param類型轉換爲實際的類常量要使用:
def vehicle_type
params[:type].constantize
end
然後你可以做的控制器操作:
def new
vehicle_type.new
end
def create
vehicle_type.new(params)
# ...
end
def index
vehicle_type.all
end
URLS
<%= link_to 'index', :cars %>
<%= link_to 'new', [:new, :car] %>
<%= link_to 'edit', [:edit, @vehicle] %>
<%= link_to 'destroy', @vehicle, :method => :delete %>
爲是多態:)
<%= link_to 'index', @vehicle.class %>
PS:我的答案是從stackoverflow.com/questions/5246767/sti-one-controller採取和我的經驗
你能解釋一下你想什麼在控制器中做什麼? –
這是否回答你的問題? http://stackoverflow.com/questions/5246767/sti-one-controller – Karl
我認爲是的。有人能爲Model的表格提供一個例子嗎?另一個問題是我現有的鏈接是否有效?例如'vehicles_path'? – Immo