首页 > 解决方案 > 不能在类似动作的 RoR 中使用 JS

问题描述

我正在尝试在rails中制作一些网络。我想像 Facebook 一样制作“点赞按钮”。

路线.rb

resources :care_articles do
resources :care_articles do
  member do
    post "like",    to:    "care_articles#like"
  end
end

care_articles_controller.rb

def like
  like = CaLike.find_by(user_id: current_user.id, care_article_id: params[:care_article_id])
  if like == nil
    like = CaLike.create(user_id: current_user.id,  care_article_id: params[:care_article_id])
    like.save   
  else
    like.destroy
  end

  respond_to do |format|
    format.js
  end
end

在我的index.html.erb 它有部分_care_article.html.erb

        ...
        <div class="ca_likes">
          <%= care_article.ca_likes.size %> 
          <%= render 'care_articles/buttons', care_article: care_article %>  
        </div> 
        ...

_buttons.html.erb

<% if current_user.ca_likes.where(care_article_id: care_article).present? %>
  <%= link_to icon('suit-heart-fill'), like_care_article_path(care_article), 
              id: "js-like-#{care_article.id}", remote: true, method: :post %>
<% else %>
  <%= link_to icon('suit-heart'), like_care_article_path(care_article), 
            id: "js-like-#{care_article.id}", remote: true, method: :post %> 
<% end %> 

像.js.erb

$('#js-like-<%= @care_article.id %>').replaceWith("<%= j (render partial: 'care_articles/button', locals: {care_article: @care_article}) %>");

在我的 CaLike 模型 CaLike.rb

类 CaLike < ApplicationRecord belongs_to :care_article belongs_to :user end

当我单击图标时,什么也没发生。ㅡ 出现错误。

POST http://co-kkirricare-ilipe.run.goorm.io/care_articles/4/like 500(内部服务器错误)

ㅡ 和我的服务器响应

ActionView::Template::Error (Missing partial care_articles/_button with {:locale=>[:en], :formats=>[:js, :html], :variants=>[], :handl
ers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}. Searched in:

ㅡ而且根本没有CaLike.save数据。

我应该怎么做才能使用js...请帮助我。我在这里度过了沉重的时光...

标签: javascriptruby-on-railsruby

解决方案


推荐阅读