Tag: ruby on rails 3

究竟“config.assets.debug”设置到底是什么?

我已经开始开发简单的rails应用程序了。 经过几个小时的工作后,我注意到删除的css仍以某种方式应用于网页。 为了解决这个问题,我多次执行了以下操作: 停止/启动服务器 使用rails服务器 使用扭矩箱服务器 删除浏览器缓存 但没有变化。 这很奇怪 – 新的css定义已经应用,但我删除的那些仍然存在。 所以,我放弃了,决定创建新项目。 我已经设置了新项目(它的脚手架与第一个脚手架相同),当我打开其中一个视图时,旧项目的样式也被应用了。 我决定再次查看http://guides.rubyonrails.org/asset_pipeline.html并找出该设置 #Expands the lines which load the assets config.assets.debug = false 解决了这个问题。 但这个选项究竟做了什么呢? 当这是真的时,为什么旧​​的项目css被应用?

如何在Rails 3中validation非模型表单?

假设我有一个搜索表单,我想validation关键字的长度。 我希望表单突出显示无效字段(如模型表单)。 我到处寻找,似乎无法找到有关在Rails 3中validation非模型支持的表单的任何有用信息。我已经尝试了可validation的 gem,但这似乎不适用于Rails 3: undefined method `model_name’ for Login:Class. 有任何想法吗?

Rails CSRF保护如何工作?

当CSRF令牌不匹配时,Rails会引发InvalidAuthenticityToken 。 但是,从阅读来源 ,我无法弄清楚这是如何实际发生的。 我开始为该课程寻找树: $ ack –ignore-dir=test InvalidAuthenticityToken actionpack/lib/action_controller/metal/request_forgery_protection.rb 4: class InvalidAuthenticityToken :unprocessable_entity 只有两次点击,忽略了评论。 第一个是类定义: class InvalidAuthenticityToken < ActionControllerError #:nodoc: end 第二个是将exception转换为HTTP状态代码。 通过在控制器中调用protect_from_forgery来启用CSRF保护,让我们看一下: def protect_from_forgery(options = {}) self.request_forgery_protection_token ||= :authenticity_token before_filter :verify_authenticity_token, options end 它添加了一个filter: def verify_authenticity_token verified_request? || handle_unverified_request end validation失败时会调用此函数: def handle_unverified_request reset_session end 那么InvalidAuthenticityToken实际上是如何引发的呢?

使用gmaps4rails动态加载Google Maps Markers

如何仅使用gmaps4rails加载地图边界内的标记? 当然,在平移和/或缩放后加载新的。 与此直接相关,我如何获得地图的当前边界和缩放级别?

为什么使用“self”访问ActiveRecord / Rails模型属性?

贯穿我的应用程序self. 没有必要引用用户的名字。 name工作正常。 为什么以下代码要求self按预期工作? class User< ActiveRecord::Base before_save :validate_name def validate_name if self.name.nil? || self.name.empty? self.name= "Mr. No Name" end end 顺便说一下,我知道validates_presence_of可以用来阻止保存,但是如果没有给出名字,我想用默认保存。 Rails 3.0.7。

使用Rails的动态路由3

我有一个任务是按照路由模型开发rails应用程序。 我需要有PageController和Page模型。 页面url必须与/contacts, /shipping, /some_page 。 我还需要CatalogController和Category模型。 类别url必须像/laptops, /smartphones/android 。 它将是ProductsController和Product型号, Producturl必须是行/laptops/toshiba_sattelite_l605 , /smartphones/android/htc_magic 我知道这个问题可以通过使用像这样的URL来解决 /page/shipping /catalog/smartphones/android 但客户不希望在URL中看到“ /page ”或“ /catalog ”的插入。 请告诉我解决这个问题的方向。 对不起,我的英语不好。

成功使用Devise登录后,我可以执行自定义操作吗?

我有一个具有基本Devise身份validation的应用程序。 登录后,我想查找用户帐户(用户belongs_to帐户,帐户has_many用户),并将其存储在会话中,以便像@current_user一样@current_user 。 这样存储会话的轨道方式是什么? 在成功登录后,我可以使用Devise来执行代码吗?

在Ruby中合并多维哈希

我有两个哈希,其结构与此类似: hash_a = { :a => { :b => { :c => “d” } } } hash_b = { :a => { :b => { 😡 => “y” } } } 我想将这些合并在一起以产生以下哈希: { :a => { :b => { :c => “d”, 😡 => “y” } } } merge函数将在第一个哈希值中替换:a的值,其值为:第二个哈希值中的a。 所以,我编写了自己的递归合并函数,如下所示: def recursive_merge( merge_from, merge_to ) […]

如何在Ruby中获取类实例?

假设我有一个名为Post的类,它有许多已启动的实例(即Post.new(:name => ‘foo’) )。 有没有办法通过调用它上面的东西来检索该类的所有实例? 我正在寻找Post.instances.all 想法? 谢谢!

Rails 3禁用会话cookie

我在RoR 3上编写了RESTful API。我必须让我的应用程序不发送“Set-Cookie header”(客户端使用auth_token参数进行授权)。 我试过使用session :off和reset_session但它没有任何意义。 我使用devise作为身份validation框架。 这是我的ApplicationController class ApplicationController :session_required? session :off #, :unless => :session_required? skip_before_filter :verify_authenticity_token before_filter :access_control_headers! def options render :text => “” end private def access_control_headers! response.headers[“Access-Control-Allow-Origin”] = “*” response.headers[“Access-Control-Allow-Methods”] = “GET, POST, PUT, DELETE, OPTIONS” response.headers[“Access-Control-Allow-Credentials”] = “true” response.headers[“Access-Control-Allow-Headers”] = “Content-type” end def session_required? !(params[:format] == ‘xml’ or params[:format] […]