在“索引”视图中,对于“编辑”按钮,我具有以下代码:
<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控制器的索引视图。
答案 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