나는 레일즈 초보자입니다. 내 트윗에서 간단한 검색을 구현하려고하지만 은 검색중인 특정 트윗이 아닌 인 전체 트윗을 표시합니다. SQLite와 Rails 사용하기 3.2.6Cant는 Rails에서 간단한 검색 작업을 수행합니다.
나는 RailsCast # 37과 다른 튜토리얼들을 보았지만, 나는 실수를하고있는 곳을 모른다. 내 색인 페이지
<%= simple_form_for tweets_path, :method => 'get', :html => { :class => 'pull-right' } do |f| %>
<%= f.input :search, :label => false, :input_html => { :class => 'span3'} %>
<% end %>
트윗 마이그레이션
class CreateTweets < ActiveRecord::Migration
def change
create_table :tweets do |t|
t.text :body
t.references :user
t.timestamps
end
add_index :tweets, :user_id
end
end
을에
내 트윗 모델
class Tweet < ActiveRecord::Base
belongs_to :user
attr_accessible :body
def self.search(search)
if search
find(:all, :conditions => ['body LIKE ?', "%#{search}%"])
else
find(:all)
end
end
end
컨트롤러
@tweets = Tweet.search(params[:search])
양식
내가 검색 할 때의 URL!
http://localhost:3000/tweets?utf8=%E2%9C%93&%2Ftweets%5Bsearch%5D=awesome
도움말 및 지원 찾기 미리 감사드립니다!
는'params' 해시에 문제가있을 수 있습니다. 컨트롤러의 검색 액션에'raise params.to_yaml'을 넣어서'params' 해시를 디버깅하여 어떤 문자열이 전달되는지 확인할 수 있습니다. 또한 Rails 터미널에서'Tweet.search ("some text")'를 테스트하여 Tweet.search 함수에 문제가 있는지 확인할 수 있습니다. – bevanb
코멘트 주셔서 감사합니다. 나는 Tweet.search ("some text")로 시도해 보았고 검색이 효과가있다. Cant가 params (: 검색)를 사용하는 방법에 대한 아이디어를 얻은 것 같습니다. – gkolan