Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中进行基本HTML更新时出现406错误(不是jQuery、AJAX或JSON)_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 在rails中进行基本HTML更新时出现406错误(不是jQuery、AJAX或JSON)

Ruby on rails 在rails中进行基本HTML更新时出现406错误(不是jQuery、AJAX或JSON),ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,有人在rails中进行非常基本的表单更新时遇到406个错误吗?对象已更新,但重定向失败。我尝试将格式指定为HTML,并根据日志删除respond_to do | format |,它将更新为HTMLItemsController#更新为HTML 我肯定我只是忽略了一些愚蠢的事情,但我一直在努力解决这个问题。我不想通过ajax或访问JSON进行更新。我尝试过使用标准的respond|u to do | format |并指定HTML以及完全删除respond|u to do | format |。

有人在rails中进行非常基本的表单更新时遇到406个错误吗?对象已更新,但重定向失败。我尝试将格式指定为HTML,并根据日志删除
respond_to do | format |
,它将更新为HTML
ItemsController#更新为HTML

我肯定我只是忽略了一些愚蠢的事情,但我一直在努力解决这个问题。我不想通过ajax或访问JSON进行更新。我尝试过使用标准的
respond|u to do | format |
并指定HTML以及完全删除
respond|u to do | format |
。应用程序中的其余对象可以编辑,并且没有此问题

沿途

 resources :items
在控制器中

def update
    @item = Item.find(params[:id])
    if @item.update_attributes(params[:item])
         redirect_to @item
    end
end
在视图中

<%= form_for(@item) do |f| %>

     <%=f.text_field(:name)%>

     <div class="actions">
          <%= f.submit %>
     </div>
<% end %>

您的更新操作还需要处理update\u属性为false的情况。大概

def update
  @item = Item.find(params[:id])
    if @item.update_attributes(params[:item])
      redirect_to @item
    else
      render 'edit'
    end
end

作为Shailen Tuli回答的替代方案,使用

@item.update_attributes!(params[:item])
(请注意 如果无法保存,则会生成错误


406的主要意思是:Rails没有任何东西要发送回客户端,在您的情况下,当保存失败时就会发生这种情况。

James,这解决了问题吗?