• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisãoedf3eb88ac109db298ef659bfee727ed286bd0ce (tree)
Hora2013-04-04 22:16:44
AutorSHIMADA Keiki <shimada.cake@gmai...>
CommiterSHIMADA Keiki

Mensagem de Log

#10 スライド検索

Mudança Sumário

Diff

--- a/app/controllers/slides_controller.rb
+++ b/app/controllers/slides_controller.rb
@@ -2,6 +2,7 @@ class SlidesController < ApplicationController
22 # GET /slides
33 # GET /slides.json
44 def index
5+ @slide_search_form = SlideSearchForm.new(params[:slide_search_form])
56 @recents = Slide.recents
67
78 respond_to do |format|
@@ -89,4 +90,9 @@ class SlidesController < ApplicationController
8990 format.json { head :no_content }
9091 end
9192 end
93+
94+ def search
95+ @slide_search_form = SlideSearchForm.new(params[:slide_search_form])
96+ @slides = @slide_search_form.search.page(params[:page])
97+ end
9298 end
--- a/app/controllers/songs_controller.rb
+++ b/app/controllers/songs_controller.rb
@@ -116,10 +116,6 @@ class SongsController < ApplicationController
116116
117117 def search
118118 @song_search_form = SongSearchForm.new(params[:song_search_form])
119- if @song_search_form.q.present?
120- @songs = @song_search_form.search.page(params[:page])
121- else
122- @songs = []
123- end
119+ @songs = @song_search_form.search.page(params[:page])
124120 end
125121 end
--- /dev/null
+++ b/app/models/slide_search_form.rb
@@ -0,0 +1,20 @@
1+class SlideSearchForm
2+ extend ActiveModel::Naming
3+ include ActiveModel::Conversion
4+
5+ attr_accessor :q
6+
7+ def initialize(params)
8+ if params && params.has_key?(:q)
9+ self.q = params[:q]
10+ end
11+ end
12+
13+ def search
14+ slides = Slide.arel_table
15+ Slide.where(slides[:body].matches("%#{q}%"))
16+ end
17+
18+ private
19+ def persisted?; false end
20+end
\ No newline at end of file
--- a/app/views/slides/index.html.erb
+++ b/app/views/slides/index.html.erb
@@ -1,6 +1,13 @@
11 <%- title -%>
22 <h1>メッセージスライド</h1>
33
4+<%= form_for @slide_search_form, url: search_slides_path, html: {method: :get} do |f| %>
5+<p>検索
6+ <%= f.text_field :q, :size => '30' %>
7+ <%= f.submit 'search' %>
8+</p>
9+<%- end -%>
10+
411 <p><%= link_to '全スライド一覧', list_slides_path %></p>
512
613 <h2>最近の更新(Recent changes)</h2>
--- /dev/null
+++ b/app/views/slides/search.html.erb
@@ -0,0 +1,10 @@
1+<%- title -%>
2+<%= form_for @slide_search_form, url: search_slides_path, html: {:method => :get} do |f| -%>
3+ <p>検索
4+ <%= f.text_field :q, :size => '30' %>
5+ <%= f.submit 'search' %>
6+ </p>
7+<%- end -%>
8+<%= render :partial => 'list' %>
9+
10+<%= link_to 'Back', slides_path %>
--- a/app/views/songs/index.html.erb
+++ b/app/views/songs/index.html.erb
@@ -1,14 +1,15 @@
11 <%- title -%>
22 <h1>PRAISE DATABASE</h1>
33
4-<%= form_for @song_search_form, :url => search_songs_path, :html => {:method => :get} do |f| -%>
4+<%= form_for @song_search_form, url: search_songs_path, html: {:method => :get} do |f| -%>
55 <p>検索
6- <%= f.text_field :q, :size => "30" %>
7- <%= f.submit "search" %>
6+ <%= f.text_field :q, :size => '30' %>
7+ <%= f.submit 'search' %>
88 </p>
9- <p><%= link_to '全曲一覧', list_songs_path %></p>
109 <%- end -%>
1110
11+<p><%= link_to '全曲一覧', list_songs_path %></p>
12+
1213 <h2>最近の更新(Recent changes)</h2>
1314 <%- if @recents.blank? -%>
1415 <p>更新はありません</p>
--- a/app/views/songs/search.html.erb
+++ b/app/views/songs/search.html.erb
@@ -1,7 +1,7 @@
11 <%- title -%>
22 <%= form_for @song_search_form, :url => search_songs_path, :html => {:method => :get} do |f| -%>
33 <p>検索
4- <%= f.select(:code, Song.code_options, :include_blank => true) %>
4+ <%= f.select(:code, Song.code_options, :include_blank => 'コード') %>
55 <%= f.text_field :q, :size => "30" %>
66 <%= f.submit "search" %>
77 </p>
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -5,6 +5,7 @@ Ginmaku::Application.routes.draw do
55 end
66
77 collection do
8+ get :search
89 get :list
910 end
1011 end