我不知道我的控制器文件中的操作在哪里。这是内容:
class MarcasController < InheritedResources::Base
private
def marca_params
params.require(:marca).permit(:nombre, :comentarios)
end
end
怎么回事?
答案 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