【问题标题】:Ruby on rails: button to trigger another action of the same controllerRuby on rails:触发同一控制器另一个动作的按钮
【发布时间】:2013-12-21 17:07:11
【问题描述】:

我有一个控制器类(personsController),包含三个动作:新建、列表和显示。列表操作显示所有人员(取自数据库)。表演动作显示一个人。这是我的 routes.rb 文件:

People::Application.routes.draw do
  get "persons/new"
  get "persons/list"
  root "persons#new"
  resources :persons
end

还有rake routes的输出:

Prefix Verb   URI Pattern                 Controller#Action
 persons_new GET    /persons/new(.:format)      persons#new
persons_list GET    /persons/list(.:format)     persons#list
        root GET    /                           persons#new
     persons GET    /persons(.:format)          persons#index
             POST   /persons(.:format)          persons#create
  new_person GET    /persons/new(.:format)      persons#new
 edit_person GET    /persons/:id/edit(.:format) persons#edit
      person GET    /persons/:id(.:format)      persons#show
             PATCH  /persons/:id(.:format)      persons#update
             PUT    /persons/:id(.:format)      persons#update
             DELETE /persons/:id(.:format)      persons#destroy

现在从persons/18 之类的页面(页面:persons/show with id=18),我想添加一个重定向到列表页面的按钮:

<%= button_to "List All", :action => "list" %>

问题是没有到persons/18/show_all 的路由,但我会重定向到persons/list。我应该修改 routes.rb 文件(如果是,如何修改?)还是有办法“告诉按钮”它应该重定向的确切位置?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    这不是按钮的用例。

    只需使用普通链接

    link_to "List all", persons_list_path
    

    您始终可以将链接装饰成任何样式,例如按钮。

    【讨论】:

      【解决方案2】:

      尝试使用link_topersons_list_path 助手,而不是:action =&gt; "list"

      <%= link_to "List All", persons_list_path %>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-03
        • 1970-01-01
        • 1970-01-01
        • 2020-08-01
        • 2012-01-09
        • 2017-10-27
        • 2016-10-11
        • 2013-04-20
        相关资源
        最近更新 更多