Получение пользовательского ввода из формы в бэкэнде (rails 4), которая использует ajax 'get' call при нажатии кнопки поиска
Итак, у меня есть React-компонент (search_alerts.es6.jsx), который выглядит следующим образом
class SearchAlerts extends React.Component {
constructor(props) {
super(props);
console.log(this.props);
this.state = {
alertsArray: this.props.alerts,
zipCode: null,
bloodReq: null,
minCompensation: null,
maxCompensation: null,
requiredTime: null,
location: null,
bloodType: null,
keyWord: null
}
console.log(this.state.alertsArray);
}
........
и вызов ajax, который отвечает за вызов метода get, выглядит следующим образом
$.ajax({
data: JSON.stringify(stringit),
type: "GET",
url: `/findalerts/`,
contentType: "application/json",
dataType: "json",
success: function(data) {
console.log("Ajax Passed ");
console.log(data);
this.setState({
alertsArray: data
});
}.bind(this),
error: function(data) {
console.log("Ajax failed: ");
console.log(data);
}.bind(this)
});
в моем rout.rb, я делаю это
get '/findalerts', to: 'alerts#index' #Search Alerts
и в моем модуле alerts_controller
def index
@alerts = Alert.search(params[:keyword])
end
для поиска я делаю это в alert.rb
def self.search(search)
@alerts = Alert.where("ZipCode LIKE :search ", search: "%#{search}%")
@alerts += Alert.where("compensation LIKE :search ", search: "%#{search}%")
@alerts += User.search(search)
end
Теперь, если я передам запрос в URL, как это,
http://localhost:3000/findalerts?keyword=117
например, он возвращает все оповещения с почтовым индексом, начинающимся с 117 как json, а компонент реагирования выбирает его и отображает правильно. Мой вопрос: как заставить работать поиск, когда пользователь вводит ключевое слово в форме поиска? Я пробовал другие примеры из переполнения стека, это не сработало, я знаю, что что-то упустил, но не знаю что. Спасибо!