搜索不会在Rails 4中返回任何值

时间:2015-06-18 07:32:46

标签: ruby-on-rails ruby-on-rails-4 activerecord

我的控制器:

def index
  @three_data = Threeddatum.all
  @three_data = @three_data.search(params[:search]) if params[:search].present?
end

我的模特:

def self.search(search)
  if search
    self.where("area LIKE ?", "%#{:search}%")
  else
    self.all
  end
end

我的观点:

<%= form_tag('/threeddata', method: :get) do %>
  <%= text_field_tag :search, params[:search] %>
  <%= submit_tag "Search", name: nil %>
<% end %>

<% @three_data.each do |data| %>
  <td><%= data.tape_id %></td>
  <td><%= data.media_type %></td>
  <td><%= data.area %></td>
  <td><%= data.aqdate %></td>
  <td><%= data.clocation %></td>
<% end %>

我有一个区号为SD-DWN-2309/5的字段 但是当我在搜索字段中输入DWN时,它不会返回任何行。 请帮助因为我真的似乎没有找到引起这个问题的问题。

1 个答案:

答案 0 :(得分:1)

将您的代码"%#{:search}%"更改为"%#{search}%"

def self.search(search)
  if search
    self.where("area LIKE ?", "%#{search}%")
  else
    self.all
  end
end

希望它有所帮助!