Живой поиск с AJAX в рельсах 4
Я довольно новичок в программировании на ruby. Я пытаюсь создать Livesearch с AJAX, но у меня болит голова. Основная идея состоит в том, что, когда пользователь создает узел, может храниться то же самое: информация о пользователе, который его создал, родительский узел и т. Д. Для этого я провел живой поиск, где пользователь вводит идентификатор родительского узла. и пользовательские данные, которые соответствуют этому узлу, автоматически появляются. Затем, в том же виде, я хочу создать узел. Пока у меня есть следующий код, который я не делаю работу.
Я хочу что-то вроде этого:
http://www.subeimagenes.com/img/join-1369789.png
Проблемы:
AJAX не работает, я уверен, что забыл что-то важное
Не знаете, как передать значение " parent_id " (u.id в _users.html.erb, результат "живого поиска") для создания узла.
nodes_controller.rb
def new
@node = Node.new
end
def search
@node = Node.new
@parent = Node.search(params[:search]).where(:ocuped => true)
if not @users.nil?
if @users.count == 1
@node_incomplete = @users.nodes.where(" sons < ? AND ocuped = ?",2,true).first
else
@node_incomplete = @users.first.nodes.where(" sons < ? AND ocuped = ?",2,true).first
end
@son_of_incompleted_node = @node_incomplete.children
end
respond_to do |format|
format.html
format.js
end
конец
search.html.erb
<%= form_for @node, :id => "users_search" do |f| %>
<%= f.text_field :search, :value => params[:search], :autocomplete => 'off' %>
<div id='users'>
<%= render 'users' %>
</div>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :ocuped, :value => true %>
<%= f.text_field :custom_node_name %>
<%= f.check_box :terms_of_service,{}, true,false %>
<%= f.submit "Create", class: "button postfix" %>
<% end %>
_users.html.erb
<% if not @parent.nil? %>
<% @parent.each do |u| %>
<ul class="inline-list">
<li class="img-simple" style = "text-align: center; background-image: url('<%= u.user.profile_img %>')"></li>
<li style="display:table-cell; vertical-align: middle;"><h6><%= u.user.name %></h6><p><%= u.user.email %></p></li>
</ul>
<% end %>
node.rb
def self.search(search)
self.where('id = ? ', search.to_i)
end
application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require foundation
//= require_tree .
$(function() {
$("#users_search input").keyup(function() {
$.get($("#users_search").attr("action"), $("#users_search").serialize(), null, "script");
return false;
});
});
nodes.js.cofee
jQuery ->
# Ajax search on keyup
$('#users_search input').keyup( ->
$.get($("#users_search").attr("action"), $("#users_search").serialize(), null, 'script')
false
)
просмотров / узлы /search.js.erb
$('#users').html('<%= escape_javascript(render("users")) %>');