gpt4 book ai didi

ruby-on-rails - 将数组传入 form_for() 和 link_to()

转载 作者:行者123 更新时间:2023-12-03 15:58:03 25 4
gpt4 key购买 nike

我正在阅读 Rails 3 In Action。本书构建了一个项目类has_many :tickets和一类门票belongs_to :project . route.rb 文件如下所示:

    resources :projects do
resources :tickets
end

现在用于创建票证的表单接受一个数组,如下所示:
    <%= form_for [@project, @ticket] do |f| %>

在票证 show.html.erb 页面上有如下所示的链接:
    <%= link_to "Edit Ticket", [:edit, @project, @ticket] %>
<%= link_to "Delete Ticket", [@project, @ticket], :method => :delete,
:confirm => "Are you sure you want to delete this ticket?" %>

现在我很困惑为什么需要将两个对象的数组传递到 form_for() 和 link_to() 中。另外,为什么“编辑票证”需要 :edit 符号而“删除票证”不需要 :destroy 符号。

谢谢,
麦克风

最佳答案

嵌套资源从包含两个资源 ID 的 URL 路由,在这种情况下类似于:/projects/1/tickets/10 .要生成这个 URL,我们需要知道项目和票证的 id,所以这两个对象都需要传入。

编辑 URL 更进一步,并添加了一个操作关键字 - /projects/1/tickets/10/edit ,所以我们需要再次传递这个 Action 。

然而,Rails 中的 RESTful 销毁路由使用 HTTP 方法 DELETE 而不是 action 关键字,因此销毁您的票证的 URL 确实是 /projects/1/tickets/10 ;只是使用 DELETE 请求而不是 GET。

有关更多信息,我建议您阅读 Rails Routing from the Outside In

关于ruby-on-rails - 将数组传入 form_for() 和 link_to(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com