使用 link_to 创建链接,如<%= link_to "链接名" check_user_path(参数) %>,我的理解是,rails 解析成/users/check?参数 去请求,然后到 users_control.rb 下寻找 check 的方法,最后返回给客户端/view/users/check.html.erb 这个视图,不知道我的理解有没有错。
然而经常使用的时候遇到上图这个问题是什么回事呢?是不是路由配置的问题呢? 路由配置如下:
不是这样的,比如 category has many books , 那么可以使用 category_book_path
你这种情况是不会生成 check_user_path 这种路由的. 如果只是为了避免这个错误,你可以 get /users/:id/check , to: 'users#check', as: :check_user.
#1 楼 @chenjau 嗯嗯,理解了。那如果是要访问 view/uesrs/下某个视图,一般用什么方法呢?在控制器下 render 么
如果是遵守约定的话,动作同名的 view 自然会被渲染,不用手动 render. edit: 如果你要在一个动作里面渲染各种 view, 我感觉好像有点 bad code smell. 还是检查下设计比较好。
#3 楼 @chenjau 嗯嗯,好的。又理解了一点。
这种路由声明 可以用 member
member +1
直接 get '/haha' => 'ww#ee'不会生成 route 方法 要这样:
resources :users do member do post 'check' end end
才会有 check_user_path(params)
#7 楼 @embbnux 好的,谢谢大家的解答,又学习了哈