我有以下型號:Rails嵌套的資源和路由 - 如何分解控制器?
- 後
- 標籤
- TaggedPost(從郵政和標籤,標籤的has_many獲得其關聯:通過)
和我有以下routes.rb
文件:
resources :tags
resources :posts do
resources :tags
end
所以當我n例如/posts/4/tags
,這將使我在參數數組中設置post_id
值的情況下,將我帶入標籤控制器的索引操作。涼。
雖然我的問題是,現在我正在訪問帖子下的嵌套標籤資源,我應該點擊標籤控制器嗎?或者我應該設置一些其他控制器來處理此時標籤的嵌套特性?否則,我必須在標籤控制器中增加額外的邏輯。這當然可以完成,但這是處理嵌套路由和資源的常見方式嗎?我在爲標籤控制器index操作的代碼如下:
TagsController.rb
def index
if params[:post_id] && @post = Post.find_by_id(params[:post_id])
@tags = Post.find_by_id(params[:post_id]).tags
else
@tags = Tag.order(:name)
end
respond_to do |format|
format.html
format.json {render json: @tags.tokens(params[:q]) }
end
end
我可以看到在這個控制器的代碼變得越來越大,因爲我計劃了很多額外的與標籤資源相關聯的資源。如何解決這個問題的想法?
總結的問題:
- 如果資源被嵌套,如果嵌套的資源是通過代表的資源的嵌套性質不同的控制器去?這與我提供的代碼示例中的正常控制器相反。
- 如果是這樣,這些控制器應該如何命名和設置?
讓我知道你是否需要更多信息。
這實際上回答了我的問題的核心......我想除此之外的物流真的取決於我強迫組織的需求。 – 2013-02-18 23:15:31
請爲了你未來的同事(和你自己!),請閱讀@lazel答案! – gfd 2016-12-13 16:00:27
打算在這個投票中花費一些辛苦賺取的點數。請添加嵌套控制器。 – Drenmi 2017-11-26 14:08:55