Hi I am trying to use partials to update my view with re-rendering. I
created a form to submit using ajax

I am using slim-rails in place of erb

= simple_form_for(@landmark, remote: true) do |f|
    - if @landmark.errors.any?
       #error_explanation
          h2 = "#{pluralize(@landmark.errors.count, "error")}
prohibited this landmark from being saved:"
       ul
       - @landmark.errors.full_messages.each do |message|
          li = message
    = f.input :city
    = f.input :name
    = f.button :submit, class: 'btn btn-primary btn-sm'

I created a js file create.js.erb which gets called on submit, inside
it I want to make use of a partial with jQuery to append the new item
as a new row in the table, like this (file create.js.erb):

$('tbody').append("<%= j (render 'landmark', object: @landmark) %>");

My partial file '_landmark.html.slim' looks like this

tr
    td = landmark.city
    td = landmark.name
    td = link_to 'Show', landmark, class: 'btn btn-info btn-xs'
    td = link_to 'Edit', edit_landmark_path(landmark), class: 'btn
btn-primary btn-xs'
    td = link_to 'Destroy', landmark, :method => :delete, remote: true,
class: 'delete-landmark btn btn-danger btn-xs'

This is the error I am getting, how can I pass data and make use of my
partial from javascript?

Started POST "/landmarks" for 127.0.0.1 at 2016-04-09 14:37:42 -0400
Processing by LandmarksController#create as JS
   Parameters: {"utf8"=>"✓", "landmark"=>{"city"=>"Toronto",
"name"=>"Center Island"}, "commit"=>"Create Landmark"}
    (0.2ms) begin transaction
   SQL (0.2ms) INSERT INTO "landmarks" ("city", "name", "created_at",
"updated_at") VALUES (?, ?, ?, ?) [["city", "Toronto"], ["name",
"Center Island"], ["created_at", "2016-04-09 18:37:42.582440"],
["updated_at", "2016-04-09 18:37:42.582440"]]
    (185.4ms) commit transaction
   Rendered landmarks/_landmark.html.slim (39.3ms)
   Rendered landmarks/create.js.erb (40.6ms)
Completed 500 Internal Server Error in 231ms (ActiveRecord: 185.8ms)

ActionView::Template::Error (undefined local variable or method
`landmark' for #<#<Class:0x00563ca93d6b98>:0x007f7692eac7d8>
Did you mean? @landmark):
     1: tr
     2: td = landmark.city
     3: td = landmark.name
     4: td = link_to 'Show', landmark, class: 'btn btn-info btn-xs'
     5: td = link_to 'Edit', edit_landmark_path(landmark), class:
'btn btn-primary btn-xs'
   app/views/landmarks/_landmark.html.slim:2:in
`_app_views_landmarks__landmark_html_slim__1191694810663590152_70073623765620'
   app/views/landmarks/create.js.erb:1:in
`_app_views_landmarks_create_js_erb___2101680697775661015_70073623812280'
   app/controllers/landmarks_controller.rb:37:in `block (2 levels) in create'
   app/controllers/landmarks_controller.rb:29:in `create'


   Rendered /home/yadav/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb
(0.5ms)
   Rendered /home/yadav/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb
(0.6ms)
   Rendered /home/yadav/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb
(12.3ms)




--
Kind Regards,
Rajinder Yadav

--
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 rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAMRGebgQO7M7m4PgjkmcutO%2Bj0uxGY2JLT%3Dv34_r9nmY-hO40w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

  • Rajinder Yadav at Apr 9, 2016 at 8:45 pm
    It's slowly starting to make sense, I changed up create.js.erb to

    $('tbody').append("<%= j (render @landmark) %>");

    This seems to have fixed the error and I'm seeing the new item getting
    added without a re-render.
    On Sat, Apr 9, 2016 at 2:49 PM, Rajinder Yadav wrote:
    Hi I am trying to use partials to update my view with re-rendering. I
    created a form to submit using ajax

    I am using slim-rails in place of erb

    = simple_form_for(@landmark, remote: true) do |f|
    - if @landmark.errors.any?
    #error_explanation
    h2 = "#{pluralize(@landmark.errors.count, "error")}
    prohibited this landmark from being saved:"
    ul
    - @landmark.errors.full_messages.each do |message|
    li = message
    = f.input :city
    = f.input :name
    = f.button :submit, class: 'btn btn-primary btn-sm'

    I created a js file create.js.erb which gets called on submit, inside
    it I want to make use of a partial with jQuery to append the new item
    as a new row in the table, like this (file create.js.erb):

    $('tbody').append("<%= j (render 'landmark', object: @landmark) %>");

    My partial file '_landmark.html.slim' looks like this

    tr
    td = landmark.city
    td = landmark.name
    td = link_to 'Show', landmark, class: 'btn btn-info btn-xs'
    td = link_to 'Edit', edit_landmark_path(landmark), class: 'btn
    btn-primary btn-xs'
    td = link_to 'Destroy', landmark, :method => :delete, remote: true,
    class: 'delete-landmark btn btn-danger btn-xs'

    This is the error I am getting, how can I pass data and make use of my
    partial from javascript?

    Started POST "/landmarks" for 127.0.0.1 at 2016-04-09 14:37:42 -0400
    Processing by LandmarksController#create as JS
    Parameters: {"utf8"=>"✓", "landmark"=>{"city"=>"Toronto",
    "name"=>"Center Island"}, "commit"=>"Create Landmark"}
    (0.2ms) begin transaction
    SQL (0.2ms) INSERT INTO "landmarks" ("city", "name", "created_at",
    "updated_at") VALUES (?, ?, ?, ?) [["city", "Toronto"], ["name",
    "Center Island"], ["created_at", "2016-04-09 18:37:42.582440"],
    ["updated_at", "2016-04-09 18:37:42.582440"]]
    (185.4ms) commit transaction
    Rendered landmarks/_landmark.html.slim (39.3ms)
    Rendered landmarks/create.js.erb (40.6ms)
    Completed 500 Internal Server Error in 231ms (ActiveRecord: 185.8ms)

    ActionView::Template::Error (undefined local variable or method
    `landmark' for #<#<Class:0x00563ca93d6b98>:0x007f7692eac7d8>
    Did you mean? @landmark):
    1: tr
    2: td = landmark.city
    3: td = landmark.name
    4: td = link_to 'Show', landmark, class: 'btn btn-info btn-xs'
    5: td = link_to 'Edit', edit_landmark_path(landmark), class:
    'btn btn-primary btn-xs'
    app/views/landmarks/_landmark.html.slim:2:in
    `_app_views_landmarks__landmark_html_slim__1191694810663590152_70073623765620'
    app/views/landmarks/create.js.erb:1:in
    `_app_views_landmarks_create_js_erb___2101680697775661015_70073623812280'
    app/controllers/landmarks_controller.rb:37:in `block (2 levels) in create'
    app/controllers/landmarks_controller.rb:29:in `create'


    Rendered /home/yadav/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb
    (0.5ms)
    Rendered /home/yadav/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb
    (0.6ms)
    Rendered /home/yadav/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb
    (12.3ms)




    --
    Kind Regards,
    Rajinder Yadav


    --
    Kind Regards,
    Rajinder Yadav

    --
    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 rubyonrails-talk+unsubscribe@googlegroups.com.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAMRGebjV5--0GtHpN9VKUniy0im1qFePbpjWLr20Jbx3udwgGQ%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedApr 9, '16 at 6:49p
activeApr 9, '16 at 8:45p
posts2
users1
websiterubyonrails.org
irc#RubyOnRails

1 user in discussion

Rajinder Yadav: 2 posts

People

Translate

site design / logo © 2021 Grokbase