我目前有一個模型,一個控制器有一個動作來列出模型中的所有項目。一個控制器動作或兩個Ruby on Rails頁面
我需要做的是在兩個單獨的視圖中顯示來自模型的不同數據。有沒有一種方法可以使用一個控制器動作來顯示基於參數的不同視圖,還是我應該創建另一個動作?
我之所以猶豫創建另一個動作是因爲我必須重複所有爲前一個動作設置的路由。
感謝您的任何想法。
我目前有一個模型,一個控制器有一個動作來列出模型中的所有項目。一個控制器動作或兩個Ruby on Rails頁面
我需要做的是在兩個單獨的視圖中顯示來自模型的不同數據。有沒有一種方法可以使用一個控制器動作來顯示基於參數的不同視圖,還是我應該創建另一個動作?
我之所以猶豫創建另一個動作是因爲我必須重複所有爲前一個動作設置的路由。
感謝您的任何想法。
我不完全相信你已經提供了足夠的信息來給出可以被認爲是「好」的答案,但是如果我正確地理解了你,這應該是可能的。
例如,你不能做這樣的事嗎?
def show
@my_objects = MyObject.all
if params[:full_view]
render :action => 'show_full_fiew' and return
end
# if you get here, it will render the 'show' action
end
讓我知道是否有幫助。如果您可以提供更多信息,我可能會清理這個示例以提供更多信息。
你沒有提到你是否使用資源路由。如果是這樣,我只需在路線中添加一個新選項即可。
map.resources :products, :collection => { :some_great_name => :get }
你真的不應該擔心添加視圖或新的動作到你的控制器。一個行動應該通常只有幾行代碼。如果您的控制器操作開始複雜化,您應該考慮將該邏輯移入您的模型中。
這有幫助,我不知道發送一個動作到另一個。是否可以根據參數顯示不同的觀點? – coasthird 2009-11-09 04:49:36