【问题标题】:Routes setting when press the button generated by link_to tag按下link_to标签生成的按钮时的路由设置
【发布时间】:2012-07-19 05:59:16
【问题描述】:

当我点击下面的链接时,它会转到 /messages/discard.1 而不是 /messages/discard/1 。 知道我做错了什么吗?

我的观点:

  <%= link_to t('.destroy', :default => t("helpers.links.destroy")),
              messages_discard_path(@messages.id),
              :method => 'post',
              :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')),
              :class => 'btn btn-danger' %>

我的路线:

  match '/messages/discard' => 'messages#discard', :via => :post

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 view routes


    【解决方案1】:

    尝试修改link_to方法并使用:

    messages_discard_path(@messages)
    

    相反。

    此外,该路线似乎缺少 :id 。我假设您需要匹配 '/messages/:id/discard' =&gt; 'messages#discard', :via =&gt; :post

    【讨论】:

    • 是的,我相信附加了.1,因为由于缺少:id,路由没有采用任何参数。
    • 另外,我希望它是 /messages/:id/discard 而不是 /message/discard/:id
    • 谢谢。我做到了!!但是新的问题出现了!现在视图的messages_discard_path(@messages) 不起作用!!它说未定义的方法`messages_discard_path'
    • 运行 rake routes | grep discard 并检查以查看输出。你可能把命名路线弄错了。
    • POST /messages/:id/discard(.:format) messages#discard 这是输出。现在我应该在我的视图中写什么来执行丢弃? messages_discard_path(@messages) 仍将我带到 /messages/discard.1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多