Rails - 方法输入未使用参数

时间:2016-05-31 16:30:04

标签: ruby-on-rails http put

更新对象时,我们应:method => :put覆盖表单中的post,如下所示:

<%= simple_form_for @task, :url => update_task_url, :method => :put do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.input :name %>
    <%= f.input :description %>
  </div>

  <div class="form-actions">
      <%= f.submit 'Update Task'%>
  </div>
<% end %>

<%= link_to 'Back', tasks_path %>

在发出请求之前的控制器中,我试图渲染参数以检查一切是否正确如下:

render text: tasks_params
uri = URI.parse("http://localhost/tasks/public/api/tasks/"+params[:id])
response = Net::HTTP.post_form(uri, task_params)
render text: response.body

但是如果没有_method属性,我会得到以下内容:

{"name"=>"Task#1", "description"=>"lorem ipsum"}

因此在服务器端请求不成功。 我到底错过了什么?

1 个答案:

答案 0 :(得分:0)

您应该发布到所需的控制器操作

<%= simple_form_for @task, :url => update_task_url, :method => :post do |f| %>
      <%= f.error_notification %>

      <div class="form-inputs">
        <%= f.input :name %>
        <%= f.input :description %>
      </div>

      <div class="form-actions">
          <%= f.submit 'Update Task'%>
      </div>
    <% end %>

我会在您update的{​​{1}}操作中添加一个调试器断点,以确保您选择正确的路线。