ruby-on-rails – 对方法定义感到困惑:def req =(request)
发布时间:2020-12-16 21:22:00 所属栏目:百科 来源:网络整理
导读:我在Ryan Bates的railscast网站上找到了这个,但不知道它是如何工作的. #models/comment.rbdef req=(request) self.user_ip = request.remote_ip self.user_agent = request.env['HTTP_USER_AGENT'] self.referrer = request.env['HTTP_REFERER']end#blogs_co
我在Ryan Bates的railscast网站上找到了这个,但不知道它是如何工作的.
#models/comment.rb def req=(request) self.user_ip = request.remote_ip self.user_agent = request.env['HTTP_USER_AGENT'] self.referrer = request.env['HTTP_REFERER'] end #blogs_controller.rb def create @blog = Blog.new(params[:blog]) @blog.req = request if @blog.save ... 我看到他正在保存用户ip,用户代理和引用,但我对req =(request)行感到困惑. 解决方法
要在
Karmen Blake’s answer和
KandadaBoggu’s answer上构建,第一个方法定义会在执行此行时执行:
@blog.req = request 这就像这样做: @blog.user_ip = request.remote_ip @blog.user_agent = request.env['HTTP_USER_AGENT'] @blog.referrer = request.env['HTTP_REFERER'] 它基本上设置了一个捷径.看起来你只是在分配一个变量的值,但实际上你正在调用一个名为req =的方法,而请求对象是第一个(也是唯一的)参数. 这是有效的,因为在Ruby中,函数可以使用或不使用括号. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |