使用带有format.js的AJAX的“ActionController :: UnknownFormat”

时间:2015-01-31 23:53:04

标签: javascript ruby-on-rails ruby ajax

我有模特:想法,项目,产品。 我想在Idea的编辑视图中尝试通过Items添加产品。 我的edit.html.erb - 想法

<div id="items">
  <%= render @idea.items %>
</div>

<div class="products">
  <% @products.each do |p| %>
    <%= p.title %><%= button_to '+', items_path(product_id: p.id, idea_id: @idea.id), remote: true %>
  <% end %>
</div>

我的物品管理员:

def create
    product = Product.friendly.find(params[:product_id])
    @item = @idea.add_product(product.id)

    respond_to do |format|
      if @item.save
        format.js 
      end
    end
  end

idea.rb

 def add_product(product_id)
         item = items.find_by(product_id: product_id)
         if item
         else
            item = items.build(product_id: product_id)
         end
         item
    end

我的&#34; create.js.erb&#34;

$('#items').html("<%= escape_javascript render(@idea.items) %>");

当我输入&#34; format.html {redirect_to:back}&#34;在def create(items_controller)中一切正常,但没有AJAX =(

日志

  

完成406在91毫秒内无法接受

     

ActionController :: UnknownFormat(ActionController :: UnknownFormat):
  app / controllers / items_controller.rb:33:在'create&#39;

帮助我,伙计们。我用谷歌搜索了整个互联网

1 个答案:

答案 0 :(得分:6)

对于那些仍然使用Google进行Google搜索的人......它帮我指定了默认值:=&gt; {format:&#39; js&#39;}用于routes.rb中的ajax操作。

post 'myaction' => 'mycontroller#myaction', defaults: { format: 'js' }