无法使用Rails从编辑表单更新字段

时间:2018-11-29 11:17:59

标签: ruby-on-rails ruby ruby-on-rails-4 form-for actioncontroller

在“索引”视图中,对于“编辑”按钮,我具有以下代码:

<td id="EditButton"><%= link_to "Edit", edit_comment_path(data.Metric+","+data.HouseId+","+data.ADate.to_s) %></td>

在我的Comment控制器中,我具有以下用于编辑和更新的代码:

def edit
            edit_array=params[:id].split(',')
            @one = edit_array[0]
            @two = edit_array[1]
            @three = edit_array[2]
            @comment = Comment.find_by(Metric: @one , HouseId: @two , ADate: @three)      
end
       def update
            @comment = Comment.find(params[:id])
            if @comment.update(comments_params)
              redirect_to metrics_path
            else
              render 'edit'
            end   
    end        

我的编辑表单中有此表单标签:

<%= form_for :comments_controller, url: comments_path(@comment) do |f| %>

编辑形式的字段:

<tr>
          <td><%= @comment.Metric %></td>
          <td><%= @comment.HouseId%></td>
          <td><%= @comment.ADate%></td>
          <td><%= f.select :IsAlarmCreated, options_for_select([["True", "1"], ["False", "0"]]), :class => 'chosen-select', :required => true, selected: @comment.IsAlarmCreated  %></td>
          <td><%= f.text_field :UserName, value: @remote_user %></td>
          <td><%= f.text_field :Comments, value: @comment.Comments, required: true  %></td>
          <td><%= f.submit "Save"%></td>

我正在执行以下操作: 索引页被加载 单击编辑后,它将导航到编辑页面 我将对字段进行一些更改,然后单击“保存” 现在,它被重定向到带有以下错误的注释:

  

找不到对CommentController的操作“创建”

期望在更新mysql中的值后重定向到Metric控制器的索引视图。

1 个答案:

答案 0 :(得分:0)

您为表单使用了错误的路径,请使用comment_path(@comment)(单数)。 comments_path(@comment)产生/comments.123而不是/comments/123

@comment方法中找到的#edit也可能是nil,并且表单已提交到/comments路径。

https://guides.rubyonrails.org/routing.html#path-and-url-helpers