ruby on rails-以haml语法显示搜索结果



我是ruby新手,在用haml语法实现搜索视图时遇到了问题。

这是我搜索的控制器代码,它工作得很好

应用程序/控制器/搜索

def search(text)
      @patients = @client.submit_search({ query: text, page: 1, page_size: 30 })
 end

这是我在/config 中的路线

match 'patients/index' => 'search/patients#index', via: :get

这是我的观点,其中包含的形式:

//Search Form
%h2 Patient Search
.search-form-elements
  %form{ :action => "", :method => "get"}
    %label{:for => "name"} First Name:
    %input{:type => "text", :name =>"first_name"}
    %label{:for => "name"} Last Name:
    %input{:type => "text", :name =>"last_name"}

    %label{:for => "name"}
    %input{:type => "submit", :value => "Search", :class => "button"}
  %table.table.table-bordered.table-condensed
    %tr
      %th
        Patient Name
      %th
        Id#
      %th
        Age
      %th
        Gender

基本上,当我键入一些文本并点击提交时,我想在上面的html表片段中显示patient.name、patient.age等。如果结果集为空,我不想显示html表。但我不确定如何在haml格式中实现这一点。

以下是我的操作方法。我假设您在索引视图中有您的患者列表。

在您看来:

= form_tag patients_path, method: 'get' do
  = text_field_tag :search, params[:search]
  = submit_tag "Search", :name => nil
- if @patients.present?
  %table.table.table-bordered.table-condensed
    %tr
      %th Patient Name
      %th Id
      %th Age
      %th Gender
    - @patients.each do |patient|
      %tr
        %td= patient.name
        %td= patient.id
        %td= patient.age
        %td= patient.gender

Patient控制器中:

def index
  @patients= Patient.search(params[:search])
end

在您的模型中:

def self.search(search)
  key = "%#{search}%"
  if search
    where('first_name LIKE ? OR last_name LIKE ?', key, key)
  else
    all
  end
end

相关内容

  • 没有找到相关文章

最新更新