Rails 视图在删除链接中传递了错误的参数
Posted
技术标签:
【中文标题】Rails 视图在删除链接中传递了错误的参数【英文标题】:Rails view passes wrong parameters in delete link 【发布时间】:2016-05-28 14:08:13 【问题描述】:以下是我的服务器日志。
我正在传递 user_id
和 id
以及视图中的删除链接。当它通过时,user_id
的值为15067
,id
的值为1010
当我检查 params put pry 方法时,id
的值被 user_id
替换,即 15067。
这是一个完整的工作流程:
路线
delete "users/delete_role_sub_field" => "users#delete_role_sub_field"
控制器:
def delete_role_sub_field
// Some code for destroy
end
查看:
<% @user.roles.each_with_index do |role, i| %>
<tr>
<td>
<a class="delete remove-description-field" href="/users/delete_role_sub_field?user_id=<%= @user.id %>&id=<%= role.id %>" data-method="delete" method="delete" data-confirm="Are you sure you want to delete Role Field?">
Delete
</a>
</td>
</tr>
<% end %>
如有任何帮助,我们将不胜感激!
提前致谢。
【问题讨论】:
【参考方案1】:您可以发布您的link_to
功能吗?你在哪里传递你的参数,因为应用程序工作正常,如果你查看你的路线,你会看到它的第一个参数和第二个参数。
例子:
resources :magazines do
resources :ads
end
这将生成这样的路线:
/magazines/:magazine_id/ads/:id
Link_to 将是这样的:
link_to ads.title, magazines_ads_path(magazine.id, ads.id)
在表演中:
def action
@ads = Magazine.find(params[:magazine_id)).ads.find(params[:id])
end
【讨论】:
这里是 => 删除 我使用简单的html来创建链接。 你应该尽可能地使用link_to函数,因为如果你改变了一些仍然可以工作的东西。告诉我你的行动路线。以上是关于Rails 视图在删除链接中传递了错误的参数的主要内容,如果未能解决你的问题,请参考以下文章