Heroku Jquery - nie działa dodawanie komentarzy

Witam,
Oto moja aplikacja: https://github.com/regedarek/ekosass
Oto mój problem: http://ekorozwoj.heroku.com/

Na moim serwerze localnym aplikacja działa bez zarzutu. Niestety po dodaniu do Heroku przestało działać dodawanie komentarzy.
Ajaxa dodawałem za pomocą tych rzeczy:
http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/
https://github.com/rails/jquery-ujs - automatyczną instalacją.

Nie mam już siły z tym dodawaniem Ajaxa.
Bardzo by mi się przydała pomoc. Dzięki, za dotychczasową pomoc.

To wypluwa konsola do js po dodaniu komentarza:
POST http://ekorozwoj.heroku.com/posts/3/comments 500 (Internal Server Error)

Czyli dostajesz w odpowiedzi od serwera:

[code=html]

We're sorry, but something went wrong (500) body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } div.dialog { width: 25em; padding: 0 4em; margin: 4em auto 0 auto; border: 1px solid #ccc; border-right-color: #999; border-bottom-color: #999; } h1 { font-size: 100%; color: #f00; line-height: 1.5em; }

We're sorry, but something went wrong.

We've been notified about this issue and we'll take a look at it shortly.

[/code] Więcej masz w logach

Z tego co widzę to komentarz się dodaje, tylko nie jest renderowany masz gdzieś błąd w kontrlerze w respond_to |format|

Spojrzę w kod zaraz jak będę miał chwilę

Może to przez tego Hamla tylko dlaczego działa localnie a na heroku nie

class CommentsController < ApplicationController def create @post = Post.find(params[:post_id]) @comment = @post.comments.create!(params[:comment]) respond_to do |format| format.html { redirect_to @post } format.js {render :layout=>false} end end end

odpal do w developmencie i zobacz co ci logi wypluwają:
do tego czemu niby instalujesz rails-jquery , ładujesz js a później jeszcze jquery ze zdalnej lokalizacji? Powinieneś odpalić

rails generate jquery:install --ui

to podmieni ci prototype przez jquery

do tego czemu masz wyłączony csrf

csrf --> Nie mogę go przestawić na hamla tzn wypluwa mi to jako zwykly tekst na głównej stronie

To mi wyrzuca konsola na localhoscie

/* Add the new comment to the bottom of the comments list */
$("#comments").append("<div class=“comment” id=“comment_114”>

\n Napisanro\n less than a minute\n temu\n
\n
\n C\n</p>\n</div>");

/* Highlight the new comment */
$("#comment_114").effect(“highlight”, {}, 3000);

/* Reset the comment form */
$("#new_comment")[0].reset();

bo masz to źle, tak powinno

[code=ruby]!!!
%html

%head
%title
= “Coś tam”
%meta{“http-equiv”=>“Content-Type”, :content=>“text/html; charset=utf-8”}/
= stylesheet_link_tag “application”
= javascript_include_tag :defaults
= csrf_meta_tag
= yield(:head)[/code]

Poprawiłem, ale nadal nie działa ten csrf_metatag

musi, a jquery zainstalowałeś tak jak pisałem i wywaliłeś te ręcznie ładowane?

Wszystko poprawiłem:
odinstalowałem jquery-rails
rails generate jquery:install --ui
i od nowa wrzuiclem na heroku ale dalej nie działa, szczególnie ten csrf -> zobacz co mi wrzuca na strone
Dzieki wielkie za dotychczasowa pomoc.

odpowiedź masz w kodzie, zamiast <> masz

Tylko czemu ;] masz na github aktualny kod?

może spróbuj tak

!!! %html %head %title = "Ekorozwój" %meta{"http-equiv"=>"Content-Type", :content=>"text/html; charset=utf-8"}/ = stylesheet_link_tag :all = javascript_include_tag :defaults = csrf_meta_tag %body
W innej kolejności. Innego pomysłu nie mam :confused:

Wszystko poprawione wg twoich zaleceń. Jednak nadal nie działa. Może to coś z controllerem?
Uaktualniłem githuba.

Na github jak uaktualniłeś to nadal masz tak:

!!!
%html
%head
%title
= “Ekorozwój”
%meta{“http-equiv”=>“Content-Type”, :content=>“text/html; charset=utf-8”}/
= csrf_meta_tag
= stylesheet_link_tag :all
= javascript_include_tag :defaults

daj to crsf na sam koniec, nie powinno mieć znaczenia ale pomysłu nie mam. Gdzie coś mogłeś pomieszać :confused:

Uaktualniłem trochę później bo nie zauwważyłem, że źle haslo wpisałem. Niestety nadal nie działa, czy te metatagi powinny być takie?

Wygląda na to (patrząc na kod źródłowy na heroku), że najpierw ładuje Ci jquery-ui.js a dopiero potem jquery.js. Musisz albo pozmieniać delikatnie te nazwy (np. tę pierwszą na jquery.ui.js) żeby jquery.js znalazło się na początku (wtedy nie musisz niczego zmieniać w layout/application.html.haml), albo będziesz zmuszony dodawać wszystkie biblioteki js ręcznie do pliku layout/application.html.haml pamiętając o właściwej kolejności.

Kurna chata, nie mam pojęcia co może być źle! zmienilem, żeby poprawnie wyświetlał biblioteki ale dalej nic to nie pomaga :). A na localhoscie nadal śmiga :slight_smile:
development.log

Started GET "/posts/14" for 127.0.0.1 at 2011-04-01 14:28:35 +0200 Processing by PostsController#show as HTML Parameters: {"id"=>"14"} Post Load (6.5ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = 14 LIMIT 1 DEPRECATION WARNING: <% %> style block helpers are deprecated. Please use <%= %>. (called from _app_views_posts__post_html_erb___201505943_97424430_219429436 at /home/rege/ekosass/app/views/posts/_post.html.erb:1) Rendered posts/_post.html.erb (4.4ms) Comment Load (3.8ms) SELECT "comments".* FROM "comments" WHERE ("comments".post_id = 14) DEPRECATION WARNING: - style block helpers are deprecated. Please use =. (called from _app_views_comments__comment_html_haml___114393276_98039230_917032878 at /home/rege/ekosass/app/views/comments/_comment.html.haml:1) DEPRECATION WARNING: - style block helpers are deprecated. Please use =. (called from _app_views_comments__comment_html_haml___114393276_98039230_917032878 at /home/rege/ekosass/app/views/comments/_comment.html.haml:1) DEPRECATION WARNING: - style block helpers are deprecated. Please use =. (called from _app_views_posts_show_html_haml___670326601_97739750_114596048 at /home/rege/ekosass/app/views/posts/show.html.haml:12)
heroku logs

app[web.1]: Started GET "/posts/2" for 77.255.102.134 at Fri Apr 01 05:48:24 -0700 2011 app[web.1]: Started POST "/posts/2/comments" for 77.255.102.134 at Fri Apr 01 05:48:42 -0700 2011 app[web.1]: ActionView::Template::Error (undefined method `model_name' for NilClass:Class): app[web.1]: 1: <% div_for comment do %> app[web.1]: 2: <p> app[web.1]: 3: <strong>Napisano <%= time_ago_in_words(comment.created_at) %> temu</strong><br /> app[web.1]: 4: <%= h(comment.body) %> app[web.1]: app/views/comments/_comment.html.erb:1:in `_app_views_comments__comment_html_erb___571823389_23981271816100_832510' app[web.1]: app/views/comments/create.js.rjs:1:in `_app_views_comments_create_js_rjs___513629828_23981271325580_0' app[web.1]: app/controllers/comments_controller.rb:7:in `create'
Nie wiem za bardzo jak interpretować app[web.1]: ActionView::Template::Error (undefined method `model_name' for NilClass:Class):
oraz skąd się bierze create.js.rjs - nie mam takiego pliku

Temat do zamknięcia.
Wszystko poszło o moją nieiwedzę na temat Gita i Heroku. po prostu na serwerze były pliki create.js.rjs i _coment_html_erb tylko nie wiedziałem jak sprawdzić czy są i je usunąć dlatego zrobiłem nowe repo i nowy serwer.
Ale dziękuję za uporządkowanie mi kodu.