小编Sco*_*ott的帖子

Rails没有路由与嵌套资源匹配

我知道这个问题在Rails中出现了很多,但我似乎无法获得任何以前的答案.

MyApplication::Application.routes.draw do
  resources :matters do
    resources :issues
  end 
Run Code Online (Sandbox Code Playgroud)

我收到以下路由错误:

No route matches {:action=>"show", :controller=>"issues", :matter_id=>#<Matter id: 2, name: "Wilson", user_id: nil, created_at: "2011-03-23 18:19:40", updated_at: "2011-03-23 18:19:40">, :id=>nil}
Run Code Online (Sandbox Code Playgroud)

我想尝试这样的道路:

<%= link_to issue.content, matter_issue_path(@matter, @issue) %>
Run Code Online (Sandbox Code Playgroud)

当我运行rake路线时,它显示我有路径:

matter_issues GET  /matters/:matter_id/issues(.:format) {:action=>"index", :controller=>"issues"}
Run Code Online (Sandbox Code Playgroud)

有什么想法我收到这个错误?谢谢!

routing ruby-on-rails

8
推荐指数
1
解决办法
5476
查看次数

什么是非资源路由的link_to路径?

我有一条非资源路由,在路由中使用SHA令牌.这是在我的routes.rb文件中:

match 'permissions/confirm/:token' => 'permissions#confirm'
Run Code Online (Sandbox Code Playgroud)

我可以访问生成的路由,但我不知道传递给link_to帮助器的内容.

这是我正在使用的link_to,它不起作用:

<%= link_to "Give permission", confirm_permission_path(:token => @permission.token) %>
Run Code Online (Sandbox Code Playgroud)

思考?

ruby ruby-on-rails ruby-on-rails-3

7
推荐指数
2
解决办法
2556
查看次数

如何使用Devise将注册限制为管理员

我正在尝试将注册限制为Devise管理员.如果可能的话,我现在想避免使用CanCan.:我已经在选项#1这里所描述创建一个独立的设计管理模式https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-Role.

接下来,我为用户设置了一个CRUD界面,如下所述:https://github.com/plataformatec/devise/wiki/How-To:-Manage-users-through-a-CRUD-interface .

我想通过使用类似于before_filter :authenticate_admin!用户控制器的东西限制新的注册,但由于某种原因,它不限制新的注册.

我的routes.rb看起来像这样:

devise_for :admins
devise_for :users, :path_prefix => 'd'
resources :admins
resources :users, :controller => "users"
Run Code Online (Sandbox Code Playgroud)

任何想法为什么before_filter :authenticate_admin!不限制新的注册?

ruby ruby-on-rails devise

3
推荐指数
1
解决办法
3497
查看次数

标签 统计

ruby-on-rails ×3

ruby ×2

devise ×1

routing ×1

ruby-on-rails-3 ×1