【问题标题】:Rails call a controller user-defined methodRails 调用控制器用户定义的方法
【发布时间】:2015-12-23 09:19:01
【问题描述】:

我正在使用 rails 我有一个控制器名称簿,其中有一个用户定义的方法。我需要调用这个方法,以便我可以在控制台上看到输出。我不想在助手中调用这个方法。

def approve
    @user=current_user.users.find params[:id]
    puts '#{@usery}'     
  end 


我也有链接

<%= link_to 'approve',users_path,data: { :confirm => 'Are you sure to delete the folder and all of its contents?'} %>


。当我单击此链接时,我想在其上调用上述方法。

【问题讨论】:

    标签: ruby-on-rails view controller


    【解决方案1】:

    您只需要define a route 并通过它调用它:

    #config/routes.rb
    resources :users do
        get :approve, on: :member
    end
    
    <%= link_to "Approve", users_approve_path(@user) %>
    

    【讨论】:

      【解决方案2】:

      正如@Rich 建议的那样,您可以通过member 实现它。请注意,当您在成员块中创建 member 路由时

      resources :users do
        member do
          get 'approve'
        end
      end
      

      然后你会得到params[:id]。喜欢

      def approve
        @user = User.find params[:id]
        puts '#{@user}'     
      end
      

      当使用:on 创建member 路由时,您将获得params[:user_id]。喜欢

      def approve
        @user = User.find params[:user_id]
        puts '#{@user}'     
      end
      

      两种情况下的路径都相同

      <%= link_to "Approve", users_approve_path(@user) %>
      

      来源Rails - Adding More RESTful Actions

      编码愉快!!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-29
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多