小编Klo*_*tho的帖子

在Ruby on Rails中,如何将控制权传递给另一个控制器中的操作?

我发现一些参考文献描述之间的区别renderredirect_to,但没有一样让我知道该怎么做我想要的东西,这是直接将控制权(这同一个请求中,所以没有redirect_to)到另一个控制器的操作.

基本上,我想修复我用于处理登录和会话的示例代码中的错误.如果我登录,但稍后再进行操作rake db:seed,则会更改用户的所有ID,并且我的登录会话将变为无效.当我尝试获取当前用户时,这会导致引发令人讨厌的异常,具有:

@current_user ||= Reviewer.find(session[:reviewer_id])
Run Code Online (Sandbox Code Playgroud)

因此,要解决这个问题,我想提出一个检查在我的"的before_filter" ensure_login.像这样的东西(但这不起作用):

unless Reviewer.where(id: session[:reviewer_id]).first
  render :action => 'sessions/destroy'
end
Run Code Online (Sandbox Code Playgroud)

这会尝试渲染与之关联的模板sessions/destroy,但当然没有一个.我认为解决方案必须非常简单,但我被困住了.

ruby-on-rails

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

为什么我为File:Class获得"未定义的方法"?

我刚刚在我的Ubuntu机器上安装了Ruby,并且这样做了:

$ ruby --version
ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]

$ ruby
p File.basename("foo")
p File.exist("foo")
"foo"
-:2:in `<main>': undefined method `exist' for File:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

我读的方式文件文档页面,应该不是这个工作?

ruby

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

标签 统计

ruby ×1

ruby-on-rails ×1