i'm building menu of categories can updated using :remote => true
in rails without reloading page.
my new
action renders javascript , changes show on page create
action seems render doesn't show on page. can see changes when reload page know create action working. it's javascript doesn't seem render page properly. however, if @ response of post
request in firebug, can see intended changes.
please help. i've spent hours on stackoverflow trying find solution.
my categories controller
class categoriescontroller < applicationcontroller def new @category = category.new() end def create @category = category.new(category_params) if @category.save redirect_to(:controller => 'apps', :action => 'index') else render('new') end @categories = category.where(:parent_id => nil) end def update @category.update_attributes(category_params) end private def category_params params.require(:categories).permit(:name, :parent_id) end end
my apps controller
class appscontroller < applicationcontroller def index @category = nil @categories = category.where(:parent_id => nil) @apps = app.all respond_to |format| format.html format.json format.js end end def new @app = app.new() end def create @app = app.new(params[:id]) if @app.save redirect_to(:action => 'index') else render('new') end end private def apps_params params.require(:apps).permit(:name, :category, :image) end end
the create form (partial)
<%= simple_form_for :categories, remote: true, :url => url_for(:action => 'create', :controller => 'categories'), :method => 'post' |f| %> <%= f.input :name %> <% end %>
create.js.erb
$('#categories-list').html("<%= j (render 'catlist') %>"); $('#category-form').slideup(350);
_catlist.html.erb
<li class="pure-menu-heading">categories</li> <% @categories.each |cat| %> <li class="pure-menu-item"><a href="#" class="pure-menu-link"><span class="email-label-personal"></span><%= cat.name %></a></li> <% end %>
solved!
i found guys me on forum.
all had remove redirect_to(:controller => 'apps', :action => 'index')
in categories controller