我的控制器中的操作在哪里 - Rails4

时间:2015-05-19 19:07:18

标签: ruby-on-rails controller action

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

class MarcasController < InheritedResources::Base

  private

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

怎么回事?

3 个答案:

答案 0 :(得分:0)

这些动作由inherited_resources gem隐式添加。据推测,这是您正在处理的其他人的代码?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

控制器操作是另一种说“响应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