railsで自作のサイトに検索ボックスを追加したいと思い検索したら、コピペしたら簡単にできてしまったのですがなぜそうなるのかわかりません。
かなり抽象的な質問なのでざっくりとした説明でよいのでお願いします。
model
RUBY
1class Project < ActiveRecord::Base 2 def self.search(search) #self.でクラスメソッドとしている 3 if search # Controllerから渡されたパラメータが!= nilの場合は、titleカラムを部分一致検索 4 Project.where(['name LIKE ?', "%#{search}%"]) 5 else 6 Project.all #全て表示。 7 end 8 end 9end
Project.where(['name LIKE ?', "%#{search}%"])の中の
'name LIKE ?', "%#{search}%"]←のLikeのような書き方をなんと呼びますか?(これの使い方を勉強したいのですが、上手く検索にヒットしないのでお願いします)
modelの中のすべてをキーワード検索したい場合は単純にクエリを増やすなどするのでしょうか
view
RUBY
1<%= form_tag projects_path, :method => 'get' do %> <%# projects_pathはモデル名で読みかえること %> 2 <p> 3 <%= text_field_tag :search, params[:search] %> 4 <%= submit_tag "Search", :name => nil %> 5 </p> 6<% end %>
:method => 'get'
↑は決まった言い方なのでしょうか
controller
RUBY
1class ProjectsController < ApplicationController 2 def index 3 #ViewのFormで取得したパラメータをモデルに渡す 4 @projects = Project.search(params[:search]) 5 end 6end
参考サイト http://qiita.com/budougumi0617/items/d98fc15adea4dab438e7
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。