我正在创建一个 Rails 应用程序,用户可以在其中发布指向他们在网络上拥有的实时网站的链接,以及网站的内容和编码它的编程语言。
我正在尝试创建一个可以搜索一些内容的搜索表单:
(1) 发布链接的 URL (2) 编程语言 (3) 用户名
我有一个链接和一个用户模型。
class Link < ActiveRecord::Base
belongs_to :user
def self.search(search)
where("language LIKE ?", "%#{search}%")
where("url LIKE ?", "%#{search}%")
end
end
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :links
def self.search(search)
where("name LIKE ?", "%#{search}%")
end
end
我的用户和链接控制器索引方法如下:
class LinksController < ApplicationController
before_action :set_link, only: [:show, :edit, :update, :destroy, :upvote]
before_filter :authenticate_user!, except: [:index, :show]
def index
@links = Link.search(params[:link])
end
class UsersController < ApplicationController
def index
@users = User.search(params[:user])
end
我将如何将所有搜索职责委托给单个搜索栏。本质上,我只想让搜索栏能够搜索我上面提到的 3 个属性。我打算把它放在 index/layouts/application.html.erb 文件夹中。
谢谢您的帮助!