По крайней мере, я думаю, что в этом проблема ... Я пытаюсь создать страницу, где подстрока отправляется через строку запроса, и члены данного массива, которые соответствуют подстроке, отображаются на странице.Я знаю, что логика в моей модели работает, но, очевидно, что-то идет не так, потому что, когда я отправляю подстроку, которая соответствует нескольким элементам массива, она возвращается с "без совпадений".Я почти уверен, что проблема где-то в модели, или миграции.
Вот модель:
class State < ActiveRecord::Base
def State.filter(matching_string)
matcher = Regexp.new(matching_string, Regexp::IGNORECASE)
@new_array = []
State.select{|x| if matcher =~ x then @new_array << x end}
return @new_array
end
end
Вот миграция:
class CreateStates < ActiveRecord::Migration
def self.up
list_of_states = ["Alabama", "Alaska", "Arizona", "Arkansas", "California",
"Colorado", "Connecticut", "Delaware", "Florida", "Georgia",
"Hawaii", "Idaho", "Illinois", "Indiana", "Iowa",
"Kansas", "Kentucky", "Louisiana", "Maine", "Maryland",
"Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri",
"Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey",
"New Mexico", "New York", "North Carolina", "North Dakota", "Ohio",
"Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina",
"South Dakota", "Tennessee", "Texas", "Utah", "Vermont",
"Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"]
create_table :states do |t|
t.string :name
t.timestamps
end
State.reset_column_information
for x in list_of_states
State.create(:name => x)
end
State.all.collect {|x| x.name}
end
def self.down
drop_table :states
end
end
Ивот контроллер:
class StatesController < ApplicationController
def filter
@states = State.filter(params[:substring])
@entered_string = params[:substring]
end end
TIA!