我正在制作一个带有一个控制器“项目”的站点,我想显示所有带有to路由的项目:
我试过这个
get 'front/:id' => 'projects#show', :constraints => { :id => /[^/]+/ }
我的文件:
路线。铷
Rails.application.routes.draw do resources :users, path: '/admin/clients' get 'admin' => 'admin#dashbord' get 'admin/profile' get 'admin/settings' get 'admin/_admin_header' get 'front' => 'front#index' get 'front/profile' => 'front#profile' get 'front/:id' => 'projects#show' scope '/admin' do resources :projects do resources :pictures end end end
项目管理器。铷
layout 'adminApplication' before_action :set_project, only: [:show, :edit, :update, :destroy] def index @projects = Project.all end def show end def new @project = Project.new end def edit end def create @project = Project.new(project_params) respond_to do |format| if @project.save format.html { redirect_to @project, notice: 'Project was successfully created.' } format.json { render :show, status: :created, location: @project } else format.html { render :new } format.json { render json: @project.errors, status: :unprocessable_entity } end end end def update respond_to do |format| if @project.update(project_params) format.html { redirect_to @project, notice: 'Project was successfully updated.' } format.json { render :show, status: :ok, location: @project } else format.html { render :edit } format.json { render json: @project.errors, status: :unprocessable_entity } end end end def destroy @project.destroy respond_to do |format| format.html { redirect_to projects_url, notice: 'Project was successfully destroyed.' } format.json { head :no_content } end end private def set_project @project = Project.find(params[:id]) end def project_params params.require(:project).permit(:name, :date, :location, :integer) end end
前端控制器。铷
def index @projects = Project.all render 'projects/index' end def show end def profile end end
在项目/index.html.erb
- link_to 'Show', project - link_to 'Show', front_path(project)
我已经检查了所有类似的问题。
谢谢你的帮助!
Kazei设计
最新消息
rake路由| grep front
:
front GET /front(.:format) front#index
front_profile GET /front/profile(.:format) front#profile
GET /front/:id(.:format) projects#show
你可能想改变路线
get 'front.:id' => 'projects#show'
您正在使用命名的路由助手,但您没有指定它:
- link_to 'Show', front_path(project)
您可以在您的路线中看到,projects\show
的front\u path
不存在:
rake routes | grep front
front GET /front(.:format) front#index
front_profile GET /front/profile(.:format) front#profile
GET /front/:id(.:format) projects#show
所以,在您的routes.rb
中添加助手:
get 'front/:id' => 'projects#show', as: :custom_front
现在运行rake routes
查看新的帮助程序(应该是custom\u front\u path
)并使用它:
- link_to 'Show', custom_front_path(project)
请参阅文档-4.3覆盖命名帮助程序中的更多信息
我在我的控制器类中有一个动作,我想要如下两条不同的路线: 原因是我想给一些用户提供路由访问,但用户角色不同。 假设: 具有角色的用户可以访问 具有< code >用户角色的用户可以访问< code >用户选择日期 问题是是否有可能为一个动作有两个不同的路线?或者我为不同的路线复制了代码?
仅支持 pathInfo 模式的 URL,且与控制器名称(方法)保持一致,控制器搜索规则为优先完整匹配模式。 路由规则 内置路由支持无限层级的路由,即Controller可以无限嵌套目录,如: http://127.0.0.1:9501/api/auth/login 执行的方法为:AppControllerApiAuth::login() http://127.0.0.1:9501/a/b/c/d
我试图测试两个不同的控制器类,因为我想测试两个类中的每个方法,我将使用@WebMvcTest,我的问题是有一种方法可以将模拟注入到两个类中,可能是这样的? 当然,这会产生错误,所以这是否意味着当使用@WebMvcTest时,我们只能在一个控制器中测试方法?每班
问题内容: 如何从不属于将要渲染到的视图的控制器中渲染? 例如: 如何从页面渲染页面视图? post_controller.rb 问题答案: 似乎有几种方法可以实现此目的: 您如何使用Ruby onRails响应控制器中的另一个js文件? 在Rails中渲染红宝石的替代视图
自定义路由 easySwoole支持路由拦截。其路由利用fastRoute实现,因此其路由规则与其保持一致,该组件的详细文档请参考 GitHub文档 路由定义 若需要再easySwoole使用路由拦截功能,请在应用目录(默认为App)下,建立Router类,井继承Core\AbstractInterface\AbstractRouter实现addRouter方法,如果在类UNIX系统下请严格注意文
我在laravel的新,想重定向客户到特定的页面,如果这个条件是有效的,但有问题,你能帮助我吗