Getting started with Ajax

Hi all,

I’m starting with Ajax but I have a issue, should be a noobie issue but
it
makes me crazy hehe. Could anyone tell me what’s going on?.

I’m following this guide
http://guides.rubyonrails.org/working_with_javascript_in_rails.html, and
with the following code my application does not recognize the action.

Hola Mundo con AJAX, version 2 Paint it red

I think the issue here is that you’re trying to use coffeescript inside
a
script tag.

My recommendation would be to put this inside a coffee file or translate
to
plain javascript.

My best,
Ian

2014-05-04 3:24 GMT+09:00 Alfredo B. [email protected]:

Hello Alfredo,

The problem here is the script tag as you are using it without any
attribute as type/language.

Please refer
https://developer.mozilla.org/en/docs/Web/HTML/Element/scriptfor more
details. The script tag if not given type will be treated as
JavaScript tag.

Hence in your case browser is considering that this script tag contains
JavaScript code and giving such errors.

For using coffeescript in script tags you can refer
http://forgivingworm.wordpress.com/2010/09/27/running-coffeescript-in-browser/

Thanks,
Lauree Roberts
Ruby on Rails Developer http://www.allerin.com
Allerin Technologies

On May 5, 2014, at 7:22 AM, Alfredo B. wrote:

          <ul>
                  remote: true %>

end

But the line ‘format.js’ is not launching the file ‘create.js.erb’ that is in
the same folder of the rest of the views of comments… When I check the log it
creates the comment and redirect the page to “user_path” but never loads the js
file.

Any idea?. I did try with the original app of the book and it works fine, so the
problem is in my code.

Thanks & Best regards.

Try adding :remote => true to the form_for method call that defines the
form. The issue, as I imagine it, is that the form is submitting when
the button is pressed, and that will go to the .html handler, not the
.js handler. You need to trap the entire form submission, not the click
of one button, and redirect its action. That’s what the rails_ujs script
does when you add :remote => true to the form tag.

Walter

Hello Lauree,

I change the way to introduce Ajax on the application, I’m following the
“Agile Web development for Rails 4.0”.

This is the part of the part of the view related with the issue:
<%= form_for(@comment) do |f| %>
<% if @comment.errors.any? %>


<%= pluralize(@comment.errors.count, ‘error’) %>
prohibited this comment from being saved:

          <ul>
            <% @comment.errors.full_messages.each do |msg| %>
                <li><%= msg %></li>
            <% end %>
          </ul>                                               r
        </div>
    <% end %>
  <p style= 'padding-top:10px;'>
      <%= f.text_field :text , class:'form-control', required:'',

placeholder: ‘What is your plan?’,style: ‘display:table-cell’%>
<%= f.submit ‘Post’, class: ‘btn’, style: ‘display:table-cell’
%>

<%= button_to ‘Post’, comments_path(comment_id: f),
remote: true %>

<% end %>

When ‘button_to’ is selected in the browser it goes to this action in
the
comments_controller.rb :

def create
@comment = Comment.new(comment_params)
print 'ID of the user that already saved the comment: ’ +
String(current_user.id)
@comment.users_id = current_user.id

respond_to do |format|
  if @comment.save
    format.html { redirect_to user_path(current_user.id) }
    *format.js {}*
    format.json { render action: 'show', status: :created, location:

@comment }
else
format.html { render action: ‘new’ }
format.json { render json: @comment.errors, status:
:unprocessable_entity }
end
end
end

But the line ‘format.js’ is not launching the file ‘create.js.erb’ that
is
in the same folder of the rest of the views of comments… When I check
the
log it creates the comment and redirect the page to “user_path” but
never
loads the js file.

Any idea?. I did try with the original app of the book and it works
fine,
so the problem is in my code.

Thanks & Best regards.

El lunes, 5 de mayo de 2014 06:57:32 UTC+2, Lauree Roberts escribió:

I can’t believe it , that was the error!. Thank you so much and sorry
for
the newbie question… :frowning:

El lunes, 5 de mayo de 2014 13:47:28 UTC+2, Walter Lee D. escribió:

El martes, 6 de mayo de 2014 13:19:30 UTC+2, Alfredo B. escribió:

Please someone? I really need this. :frowning:

Regards.

El martes, 6 de mayo de 2014 13:20:39 UTC+2, Alfredo B. escribió:

On Wednesday, May 7, 2014 5:47:38 AM UTC-4, Alfredo B. wrote:

This is the code of the ‘gallery.js.erb’ => *$(’#user-comments’).html("<%=
Processing by UsersController#gallery as JS

I can’t believe it , that was the error!. Thank you so much and sorry

the “Agile Web development for Rails 4.0”.

                <li><%= msg %></li>
      <%= button_to 'Post', comments_path(comment_id: f),
print 'ID of the user that already saved the comment: ' + String(
    format.html { render action: 'new' }

handler. You need to trap the entire form submission, not the click of one

The problem here is the script tag as you are using it without any
For using coffeescript in script tags you can refer

ERROS LIKE ‘unresolved variable or type element’

For more options, visit https://groups.google.com/d/optout.

not sure because I need more info, but try changing the format line to
the
following:

format.js { render layout: false }

Hello Alfredo,

Your button_to tag is creating the form on the page which is sending
post
type request. When you are retrieving in controller action the request
type
should be ‘get’.

Please use link_to helper as follows:

= button_tag(link_to(‘Go to Gallery’, loading_gallery_path, remote:
true))

This will create a button tag with an anchor tag init.

When clicked on this link an remote request with will be sent controller
action and your response js.erb will be rendered properly.

There may be an possibility that you rendered code is having any error
while execution. Please debug the response in that case.

Thanks & Regards,
Lauree
Ruby on Rails Developer http://www.allerin.com
Allerin Technologies

You had right.

Thank you so much.

El miércoles, 7 de mayo de 2014 18:05:08 UTC+2, mike2r escribió:

I’m having a new issue related with this. I have been searching the
reason
of it but I cannot fix it.

I have this button:

<%= button_to ‘Go to Gallery’, loading_gallery_path,
remote: true %>

And this is the controller function:

def gallery respond_to do |format| format.html { redirect_to
user_path(current_user.id) } format.js format.json {
render
action: ‘show’, status: :created, location: @comment } end end

This is the code of the ‘gallery.js.erb’ =>
$(’#user-comments’).html("<%=
escape_javascript render(:partial => ‘change.html.erb’) %>");

And this is the template that the browser is not rendering: <% print
‘CHANGING’ %>

Testing

In the log of the application I can see that this template is being
opened
by the browser but never rendered in the screen. Below is the log:

El lunes, 5 de mayo de 2014 14:05:03 UTC+2, Alfredo B. escribió:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs