【问题标题】:Where are the actions in my controller- Rails4我的控制器中的操作在哪里-Rails4
【发布时间】:2015-07-31 18:48:27
【问题描述】:

我不知道我的控制器文件中的操作在哪里。这是内容:

class MarcasController < InheritedResources::Base

  private

def marca_params
  params.require(:marca).permit(:nombre, :comentarios)
end
end

怎么了??

【问题讨论】:

  • 如何编辑它们???。谢谢

标签: ruby-on-rails controller action


【解决方案1】:

inherited_resources gem 隐式添加这些操作。大概这是您正在处理的其他人的代码?

【讨论】:

    【解决方案2】:

    MarcasController 是你的控制器, marca_params 是你的行动。但是它是私有的,所以它不能被路由器访问。

    如果您希望您的操作可以从网站访问,您需要执行以下操作:

    创建公共操作

    class MarcasController < InheritedResources::Base
    
    def index
    end
    
    
      private
    
    def marca_params
      params.require(:marca).permit(:nombre, :comentarios)
    end
    end
    

    **在你的routes.rb **

    get '/marcas' => 'marcas#index'
    

    创建对应视图,添加文件app/views/marcas/index.html.erb

    然后您将能够访问您的操作。

    通常如果您需要一个需要 CRUD 操作(创建、读取、更新删除)的控制器。您可以运行 rails 命令来创建您需要的所有文件。

    rails generate scaffold marcas nombre:text comentarios:text
    

    【讨论】:

      【解决方案3】:

      控制器操作是另一种说法,即“响应 http 请求的方法”。它们在您的路由文件中定义,例如:

      post   'marcas/',           :to => 'marcas#create'
      

      他们通常在视图或请求中这样说。所以

      class MarcasController < InheritedResources::Base
      
        # create action
        def create
          @marca = @marcas.create(marcas_params)
        end
      
        private # good for strong params and other private methods
        def marca_params
          params.require(:marca).permit(:nombre, :comentarios)
        end
      
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-15
        • 1970-01-01
        • 2014-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多