【问题标题】:ActionView::Template::Error - No route matches action in button_to \ link_to calling controller actionActionView::Template::Error - 没有路由匹配 button_to \ link_to 调用控制器动作中的动作
【发布时间】:2019-09-07 11:43:19
【问题描述】:

我正在尝试创建一个带有按钮的视图,该按钮调用 Redmine 插件的控制器操作(不幸的是,我在 Rails 上还很陌生)。我需要为我的控制器(此处为 A 控制器)创建一个方法,以便更新一些 Active Record。

我创建了一个控制器:

redmine_a_controller.rb

class RedmineAController < ApplicationController

  def prova(input)
    puts input
    return input
  end

  def p
    puts 'vuoto'
    returns 'vuoto'
  end

end

从控制台调用时,这些操作可以正常工作。不幸的是,当从我的角度调用_a.html.erb:

  <%= 
      button_to l(:imp_update), {
        :controller => 'RedmineAController',
        :action => 'p',
        method: :post
      }
  %>

它返回此错误:

ActionView::Template::Error (No route matches {:action=>"p", :controller=>"RedmineAController", :id=>"prova", :method=>:post, :tab=>"important_users"}):

我尝试在新实例上调用操作:

  <%= 
      button_to l(:imp_update), {
        :action => RedmineImportantUsersController.new.prova(1),
        method: :post
      }
  %>

但它会在 Projects 控制器中查找操作

ActionView::Template::Error (No route matches {:action=>"1", :controller=>"projects", :id=>"prova", :method=>:post}):

如何让 button_to 在RedmineAController 控制器中调用正确的prova 方法?

提前感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby model-view-controller redmine


    【解决方案1】:

    routes.rb 文件中添加路由

    resources :redmine_as do 
      collections do 
        post :a
      end
    end
    

    之后,请通过在终端上输入以下命令来完善路由 url

    rake routes | grep p
    

    在链接或按钮中设置url

    link_to "Your Link Name", p_redmine_as_path
    

    p_redmines_path 它将通过“耙式路线”返回 | grep p" 命令。

    【讨论】:

      【解决方案2】:

      正如 Ketan 所说,我错过了一条路线!

      我输入了我的 routes.rb:

      resources :important_user do 
          collection do 
            post :u_update
          end
        end
      

      在我的控制器中:

        def u_update
            puts params[:p_id] 
            puts "update!"
        end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-16
        • 1970-01-01
        • 1970-01-01
        • 2017-02-13
        相关资源
        最近更新 更多