2016-10-18 40 views
1

我想从我的link_调用JavaScript的标签使用(远程:true)选项,但当我点击我的链接时,它被处理为HTML不是作为js。任何人都可以告诉我我做错了什么。我是新来的铁轨。 这是我的代码 - >link_to标签没有响应javascript后设置远程选项为真4在rails 4

我的局部视图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) 

我所学到的是,如果我在link_中将选项remote设置为true,因为jquery_ujs不是HTML,如上所示,它应该作为js进行处理。请帮助我。在此先感谢

回答

1

我想通了,我的问题是文件的错误的顺序中的application.js清单

答案正确的顺序应该是

//= require jquery 
//= require jquery.turbolinks // if u use the gem jquery.turbolinks 
//= require jquery_ujs 
// ...Other js files 
//= require turbolinks