1

我知道有一种link_to语法,您可以在块中添加一堆 html 内容以do进行链接。但是,当我执行以下操作时:

= link_to 'Destroy', project, method: :delete, data: { confirm: 'Are you sure?' } do
  %br Hello

我收到以下错误:

undefined method `stringify_keys' for #<Project:0x007fd223b0e9b8>

有人知道如何解决这个问题吗?

谢谢!

ps 这里是 View 的大背景:

 - @projects.each do |project|
      %tr
        %td
          = link_to project.name, project
        %td
          = link_to 'Edit', edit_project_path(project)
        %td
          = link_to 'Destroy', project, method: :delete, data: { confirm: 'Are you sure?' } do
            %br Hello
4

3 回答 3

4

您需要传递一个路径作为 link_to 的第二个参数,而不是实例化对象。

使用 url 助手:

= link_to project_path(project), method: :delete, data: { confirm: 'Are you sure?' } do
  %br Hello
于 2013-09-05T17:53:13.777 回答
0

您应该像这样在块内定义链接的名称:

= link_to project, method: :delete, data: { confirm: 'Are you sure?' } do
  %br Hello

您还可以使用 project_path(project) 作为链接 url。但是带有 delete 方法的持久化实例变量也会去破坏动作。试试。

于 2013-09-05T17:53:11.293 回答
0

它要么

link_to(url, html_options = {}) do
  # name
end

或者

link_to(name, url, html_options = {})
于 2013-09-05T17:57:44.147 回答