我有資源,看起來像這樣:軌道4 select_tag嵌套資源
resources :teams do
[...]
get 'tags/:tag', to: "teams#show", as: :tag
end
每個Team
可以有多個Posts
這在它的回合可以有多個Tags
。在我的團隊秀視圖中,我想顯示select_tag
,其中列出了Team
的Posts
的所有標籤。當用戶選擇一個標籤時,我想重定向它們並列出該標籤的所有帖子。我已經開始工作了,但不是用我的嵌套資源和我想要的URLs
。我的實現目前看起來是這樣的(我用HAML
):
/ View
= form_tag team_path(@team), method: 'get', class: 'tag_form' do
.input-group
= select_tag "tag", options_from_collection_for_select(@team_tags, 'id', 'name', params[:tag]), prompt: "All tags", class: 'chosen-select'
# Controller
def show
@team_tags = @team.posts.tag_counts_on(:tags)
if params[:tag] && !params[:tag].blank?
tag = Tag.find(params[:tag])
@posts = @team.posts.tagged_with(tag.name)
else
@posts = @team.posts
end
end
這工作,但讓我看起來像這樣的網址:
teams/1?utf8=✓&tag=1
我要的是:
teams/1/tags/tag-name
這是可能做到的,看起來會如何?
這是路由的問題:[閱讀](HTTP ://guides.rubyonrails.org/routing.html) – dax
謝謝,我認爲路線是正確的。在另外一個地方,我使用'link_to'將用戶重定向到'teams/1/tags/tag-name',它可以工作。但我不知道如何用我的'select_tag'來做到這一點。 – Anders
啊,好吧!我的錯誤:) – dax