加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:02:53 所属栏目:百科 来源:网络整理
导读:我正在阅读Rails 3 In Action.这本书构建了一类项目,其中包括:all_many:门票和一类属于:project的项目. routes.rb文件如下所示: resources :projects do resources :tickets end 现在,创建票证的表单采用如下数组: %= form_for [@project,@ticket] do |
我正在阅读Rails 3 In Action.这本书构建了一类项目,其中包括:all_many:门票和一类属于:project的项目. routes.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().此外,为什么“编辑故障单”需要和:编辑符号,而“删除故障单”不需要:销毁符号.

谢谢,
麦克风

解决方法

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

编辑URL更进一步,并添加了一个动作关键字 – / projects / 1 / tickets / 10 / edit,因此我们需要再次传递此操作.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读