可以申報兩個「產品」路線 - 一個在用戶,和一個獨立的用戶,例如:
map.resources:產品 map.resources:用戶:的has_many =>:產品
他們都將尋找 「的ProductsController#指數」,但第二次將有「 user_id「(注意:」user_id「不只是」id「)
所以你可以在索引方法中測試它,並根據它是否存在顯示不同的項目。
您將需要一個的before_filter添加到ProductController的實際實例化用戶模型,然後才能使用它例如:
before_filter :get_user # put any exceptions here
def index
@products = @user.present? ? @user.products : Product.all
end
# all the other actions here...
# somewhere near the bottom...
private
def get_user
@user = User.find(params[:user_id])
end
如果你真的想顯示完全不同的看法,你可以做它明確在指數行動中,例如:
def index
@products = @user.present? ? @user.products : Product.all
if @user.present?
return render(:action => :user_view) # or whatever...
end
# will render the default template...
end
它通常被認爲是「接受」解決問題的答案的好形式。你可以通過點擊答案旁邊的「打勾」來做到這一點:) – 2011-11-16 18:14:21