Я знаю, что об этом есть куча тем, но я не могу понять, что здесь сломано.У меня есть удаленная ссылка, которая вызывает подобный метод.
Когда я нажимаю ссылку «Нравится» ...
Что происходит:
- Создается
like
(как и ожидалось). - Страница не обновляется (как и ожидалось).
Что должно произойти:
- Все выше, плюс содержимоеизменение в
like.js.erb
.Я добавил в этот файл файл console.log, и он не отображается при нажатии на ссылку «Нравится».
_like.html.erb
<% recipe = recipe || @recipe %>
<%= link_to unlike_recipe_path(recipe), remote: true, class: "recipe-card__like like" do %>
<i class="heart icon"></i>
<% end %>
примечание: частичное отображается как на странице показа, так и в индексе, поэтому я использую ||оператор.
like.js.erb
$('.like').bind('ajax:success', function(){
console.log('like clicked');
$(this).closest('.like').hide();
$(this).closest('.like-container').html('<%= escape_javascript (render partial: 'unlike', recipe: @recipe ) %>');
});
rout.rb
resources :recipes do
resources :likes
member do
get "/like", to: "recipes#like"
end
end
recipes_controller.rb
def like
@recipe = Recipe.find(params[:id])
@like = @recipe.likes.create(recipe_id: @recipe.id, user_id: current_user["uid"])
respond_to do |format|
format.html
format.js
end
end
application.js
//= require jquery
//= require jquery_ujs
//= require rails-ujs
//= require turbolinks
//= require semantic-ui/sidebar
//= require_tree .