1

(remote: true) オプションを使用してタグから JavaScript を呼び出そうとしてlink_いますが、リンクをクリックすると、js ではなく HTML として処理されます。誰が私が間違っているのか教えてもらえますか。私はレールが初めてです。これが私のコードです->

リンクが指定されている私の部分的なビュー social_media/_fb_like.erb :

<div style="display: inline-block;position: relative;">
    <% if post['likes']['summary']['has_liked']%>
      <img src="\assets\liked.png" width="18px" height="18px"/>&nbsp;<%=link_to "Like", social_media_fb_like_path(:pid => "#{post['id']}"),id: "to_unlike", :remote => true%>
    <%else%>
      <img src="\assets\unliked.png" width="18px" height="18px"/>&nbsp;<%=link_to "Like",social_media_fb_unlike_path(:pid => "#{post['id']}"),id: "to_like", :remote => true%>
    <%end%>
</div>

私のコントローラーメソッド->

SocialMediaController#fb_like

def fb_like
  user = User.find_by_id(session[:user_id])
  @post_id = Koala::Facebook::API.new(user.token)
  postid=params[:pid]
  @post_id.put_like(postid)
end

SocialMediaController#fb_unlike

def fb_unlike
  user = User.find_by_id(session[:user_id])
  @post_id = Koala::Facebook::API.new(user.token)
  postid=params[:pid]
  @post_id.delete_like(postid)
end

そしてroutes.rbの私のルート->

  get 'social_media/fb_like'

  get 'social_media/fb_unlike'

サーバーコンソールのような/異なるリンクをクリックすると、次のメッセージが表示されます。

Started GET "/social_media/fb_unlike?pid=1665814087069318_1675050226145704" for 127.0.0.1 at 2016-10-18 15:05:13 +0530
Processing by SocialMediaController#fb_unlike as HTML
Parameters: {"pid"=>"1665814087069318_1675050226145704"}
User Load (0.4ms)  SELECT  `users`.* FROM `users` WHERE `users`.`id` = 9 LIMIT 1
Completed 500 Internal Server Error in 5256ms (ActiveRecord: 0.4ms)

私が学んだことは、オプション remote を true に設定すると、上記のように HTML としてではなく、link_のために js として処理する必要があるということです。jquery_ujs私を助けてください。前もって感謝します

4

1 に答える 1