新手问题 关于 Rails 路由

yuan_yp · 2013年07月05日 · 最后由 yuan_yp 回复于 2013年07月05日 · 2578 次阅读

我的前台请求路径

url :"/organization/organPassShow"

我的 organization 控制层代码

def organPassShow#在管理员页面显示组织信息列表,跳转到已审核组织信息列表
    Logger.info('+++++++++++++++++++++')
    puts "---------------------------"
    @organs = Organization.where("isState=?",1)
    puts @organs[0].orgName
    respond_to do |format|
      format.html
    end
  end

问题请求没进来 控制台没打印

那为何请求没进来呢?你请求了没有?

#1 楼 @iBachue 请求了呀,而且页面都跳转了但是好像根本没进 action

我给代码格式化了,楼主看看我修改的内容。

#3 楼 @Rei 你这个格式怎么弄的?对了我好像发现一个问题,就是我的请求是在 user 的 view 层的,请求路劲是给到 organization 的控制层,然后 action 就进不去了,如果我给的请求路劲是 user 的控制层,action 就能进去,为什么?

#4 楼 @yuan_yp 贴 routes.rb 内容

你对 MVC 理解不清晰,浏览器的请求首先是到达 dispatch(route),然后指派给 controller 某个 action,action 查询所需的 model,然后 render view。猜你说的“请求在 view”层应该说是 view 里面加了个链接,但是对解决问题没有帮助,需要看 routes 和 view 的源码。

#5 楼 @Rei ------我的 view 层代码------- "menus" : [{ "menuname" : "组织管理", "icon" : "icon-nav", "url" : "/organization/index" }, ----------我的 routes------- root :to => 'user#index' match ':controller(/:action(/:id))(.:format)'

楼主直接给 Github 的链接地址算了。。

#6 楼 @yuan_yp

match ':controller(/:action(/:id))(.:format)'

根据这条路由,"/organization/index" 指向的是 OrganizationController 的 index action。

为什么 view 的 url 跟顶楼的不同?

PS:你可以编辑顶楼内容看看怎么用 markdown 格式化代码。

#8 楼 @Rei 刚才改了路由地址了,不过不影响,因为改成哪个路径也没用

这段参数是传给什么方法的?生成了什么内容?

"menus" : [{
"menuname" : "组织管理",
"icon" : "icon-nav",
"url" : "/organization/index"
},

run 一下 rake routes 贴结果

#9 楼 @yuan_yp 你在最顶层的 application_controller.rb 里 pry 一下 看看 params 里面 controller 和 action 都指向了哪里 就清楚了

#10 楼 @Rei 现在路由好像进去了,我在 routes 里面直接给他指定路由,但实现在又出现个新问题,里面的数据好像传不到前台,但是数据时有的还有为什么我这边会出现两次打印 控制层代码

def organPassShow#在管理员页面显示组织信息列表,跳转到已审核组织信息列表
   puts "---------------------------"
   @organs = Organization.all
   # @organs = Organization.where("isState=?",0)
   puts @organs[0].orgName
 end

谢谢各位,问题解决了,是前台的标签位置写错了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号