i trying create ajax functionality sample app of michael heart book . created feed model controller micropost in hear book . trying use ajax post feed method . getting error . attaching code below take , me .
#feeds_controller.erb class feedscontroller < applicationcontroller before_action :authenticate_user! ,only: [:create, :destroy] def create @feed = current_user.feeds.build(feed_params) if @feed.save flash[:success] = "micropost created!" #redirect_to root_url respond_to |format| format.html { redirect_to root_url } format.js else @feed_items = [] render 'static_pages/home' end end def destroy end private def feed_params params.require(:feed).permit(:content) end end
and home page rendering partials here code :
#static_pages/home.html.erb <% if user_signed_in? %> <div class="row"> <aside class="col-md-4"> <section class="user_info"> <%= render 'shared/user_info' %> </section> <section class="stats"> <%= render 'shared/stats' %> </section> </aside> <div class="col-md-8"> <h3>micropost feed</h3> <section class="micropost_form"> <%= render 'shared/feed_form' %> </section> <%= render 'shared/feed' %> </div> </div> <% else %> <% end %> here 2 codes work when trying add ajax error :
rendered shared/_feed.html.erb (3.1ms) rendered feeds/create.js.erb (6.0ms) completed 500 internal server error in 73ms (activerecord: 44.4ms) nomethoderror (undefined method `any?' nil:nilclass): app/views/shared/_feed.html.erb:1:in `_app_views_shared__feed_html_erb___516512175__638262078' app/views/feeds/create.js.erb:1:in `_app_views_feeds_create_js_erb___967625174__637838198' app/controllers/feeds_controller.rb:9:in `create' to execute ajax on create method added these files unders feeds views file name create.js.erb
$("#feed_add").html("<%= escape_javascript(render partial: "shared/feed") %>"); and form file under shared view file name _feed_form.html.erb
<%= form_for(@feed,:remote => true) |f| %> <div id="feed_add"> <%= f.text_area :content, placeholder: "compose new feed..." %> </div> <%= f.submit "post", class: "btn btn-primary" %> <% end %> #_feed.html.erb <% if @feed_items.any? %> <ol class="microposts"> <%= render @feed_items %> </ol> <%= will_paginate @feed_items %> <% end %> so tell me how can add feed , without refreshing how can show feed using partial in code .
here need render 1 thing feed in micheal heart book add line of code inside create ajax file here code :
$(".microposts").prepend('<%= j render @feed %>'); here can result want .
Comments
Post a Comment