2015-04-24 43 views
1

這是我第一個問題堆棧溢出。remote:true Ajax調用在本地服務器上工作,但不在Heroku中

我正在寫一個Rails應用程序,它將在Heroku中運行。用戶可以喜歡/不同於帖子。此行動由推薦寶石的Sidekiq工作人員進行註冊。

我使用公共活動追蹤訊息的活動,因此a.trackable.id是post.id ...

我有下面的代碼在本地主機工作Ajax調用:

public_activity /職位/ _create.html.erb:

<%= link_to "Beğenmekten Vazgeç", unlike_post_path(a.trackable.id), data: {id: a.trackable.id, toggle_text: 'Beğen', toggle_href: like_post_path(a.trackable.id)}, class: 'like_toggle', remote: true %> 
在我的帖子控制器

def like 
    @post = Post.find(params[:id]) 
    current_user.like(@post) 

    if request.xhr? 
    render json: { id: @post.id } 
    else 
    redirect_to user_profile_path(@post.user) 
    flash[:notice] = "Ajax hatası" 
    end 
end 

和_create.coffee文件

$(document).on 'ajax:success', 'a.like_toggle', (status, data, xhr) -> 
    $("a.like_toggle[data-id=#{data.id}]").each -> 
    $a = $(this) 
    href = $a.attr 'href' 
    text = $a.text() 
    $a.text($a.data('toggle-text')).attr 'href', $a.data('toggle-href') 
    $a.data('toggle-text', text).data 'toggle-href', href 
    return 

本質,如this問題描述它改變了喜歡/不喜歡的文字。

在我的Gemfile,我有

gem 'jquery-rails', '~> 4.0.3' 

,在我的application.js文件,我有;

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui 

我清理並預編譯了生產中的資產。

它在本地主機上正常工作。但是在Heroku中,我似乎無法讓它工作。

這裏的服務器日誌:

Processing by PostsController#like as HTML 
Parameters: {"id"=>"1"} 
User Load (1.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]] 
Post Load (1.6ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = $1 LIMIT 1 [["id", 1]] 
Redirected to https://emoportal.herokuapp.com/user_profiles/1 
2015-04-24T16:14:15.287Z 3 TID-osdy24n1g Recommendable::Workers::Sidekiq JID-986cd2fea4f7bfffd55849b0 INFO: start 
2015-04-24T16:14:15.368Z 3 TID-osdy24n1g Recommendable::Workers::Sidekiq JID-986cd2fea4f7bfffd55849b0 INFO: done: 0.082 sec 
User Load (1.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]] 
Completed 302 Found in 680ms (ActiveRecord: 6.7ms) 

任何幫助或想法將非常感激。 謝謝。

+0

你重新啓動Heroku嗎? (之前有問題) – davidwessman

+0

無數次。 –

+0

您是否在您的Gemfile中包含以下內容: gem'rails_12factor',組::: production –

回答

0

解決了它。問題是jquery_ujs在Heroku環境中不存在,儘管所有的預編譯和其他東西都存在。

在config/environments/production.rb文件中,我設置了config.serve_static_files = true,我做了RAILS_ENV=production rake assets:precompile,然後推送回到Heroku。

就是這樣。

相關問題