routes.rb
resources :videos, except: [:create, :update] do
collection do
get "/search", to: "videos#search", as: "search"
end
resources :comments, except: [:show, :index]
end
모델/video.rb
def self.search(search)
if search
find(:all, conditions: ['tag LIKE ?', "%#{search}%"])
else
find(:all)
end
end
videos_controller.rb에 대한 행위로서의 taggable-와 비디오 객체 태그에 대한 간단한 검색
def search
@results = Video.search(params[:search])
end
index.html.erb
<div class="">
<%= form_tag search_videos_path, method: 'get' do %>
<%= label_tag(:search, "Search") %>
<%= text_field_tag :search, "Search by video tag", params[:search] %>
<%= submit_tag "Search", name: nil %>
<% end %>
</div>
,210
레일 레일, 보석
undefined method `stringify_keys' for nil:NilClass
이 라인을 강조, 비디오 인덱스 페이지를로드
이 ...<%= text_field_tag :search, "Search by video tag", params[:search] %>
나는 또한 비디오 컨트롤러 인덱스 방법에 대한 검색을 가리키고 논리를 포함하는 시도 ... 반환 그리고 거기에 @results.
act-as-taggable-on gem은 각 비디오에 태그 배열을 제공하며 각 태그는 문자열입니다. 동영상 색인에서 태그를 기반으로 동영상을 검색하려고합니다. 나는 내가 뭘 잘못하고 있는지 확신하지 못한다. 어떤 도움이라도 대단히 감사하겠습니다. 대답을 알리는 관련 코드를 게시하는 것을 잊어 버린 경우 알려주십시오. 감사!
가 보이는 말을해야합니다,하지만 난이 개선 어떻게 표시되지 않는 이유는 무엇입니까? – Swards