El martes, 6 de mayo de 2014 13:19:30 UTC+2, Alfredo Barrero 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 <http://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' %><p>Testing<p>*
>
> 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:
>
> Started POST "/users/1/gallery" for 127.0.0.1 at 2014-05-06 13:15:39 +0200
> Processing by UsersController#gallery as JS
> Parameters:
> {"authenticity_token"=>"MQ2R+gPxDpCjEVzNrTheQD40nDUblLnlONls5ahub8E=",
> "id"=>"1"}
> CHANGING Rendered users/_change.html.erb (0.1ms)
> Rendered users/gallery.js.erb within layouts/user-layout.html.erb (2.6ms)
> Completed 200 OK in 87ms (Views: 85.3ms | ActiveRecord: 0.0ms)
>
> El lunes, 5 de mayo de 2014 14:05:03 UTC+2, Alfredo Barrero escribió:
>>
>> I can't believe it , that was the error!. Thank you so much and sorry for
>> the newbie question... :(
>>
>> El lunes, 5 de mayo de 2014 13:47:28 UTC+2, Walter Lee Davis escribió:
>>>
>>>
>>> On May 5, 2014, at 7:22 AM, Alfredo Barrero wrote:
>>>
>>> > 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? %>
>>> > <div id="error_explanation">
>>> > <h2><%= pluralize(@comment.errors.count, 'error') %>
>>> prohibited this comment from being saved:</h2>
>>> >
>>> > <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 %>
>>> > </p>
>>> >
>>> > <% 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.
>>> >
>>> >
>>>
>>> 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
>>>
>>> >
>>> >
>>> > El lunes, 5 de mayo de 2014 06:57:32 UTC+2, Lauree Roberts escribió:
>>> > 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/script for 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
>>> > Allerin Technologies
>>> >
>>> >
>>> >
>>> >
>>> > On Saturday, May 3, 2014 11:54:32 PM UTC+5:30, Alfredo Barrero wrote:
>>> > 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.
>>> >
>>> >
>>> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
>>> http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>> > <html>
>>> > <head>
>>> > <title>Hola Mundo con AJAX, version 2</title>
>>> >
>>> > <script>
>>> >
>>> > paintIt = (element, backgroundColor, textColor) -> SHOW
>>> ERROS LIKE 'unresolved variable or type element'
>>> > element.style.backgroundColor = backgroundColor
>>> > if textColor?
>>> > element.style.color = textColor
>>> >
>>> > </script>
>>> >
>>> > </head>
>>> > <body><a href="#" onclick="paintIt(this, '#990000')">Paint it
>>> red</a></body>
>>> > </html>
>>> >
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> Groups "Ruby on Rails: Talk" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> > To post to this group, send email to [email protected].
>>> > To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/rubyonrails-talk/4fbbcf42-b784-4a77-93c4-cbc59bda2175%40googlegroups.com.
>>>
>>>
>>> > For more options, visit https://groups.google.com/d/optout.
>>>
>>>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/d9e11a21-9ef1-483d-a0e2-acd3ac37bfc7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.