- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过railstutorial.org学习Rails,但我对一些事情感到困惑:在 this chapter作者告诉我们在控制台中使用 User 对象的 respond_to?
方法进行一些测试,并且效果正常。但后来,当我们为 :encrypted_password
属性编写测试时,他使用了 respond_to
。
出于好奇,我在控制台中针对 User 对象尝试了 respond_to
,但收到一条错误消息,指出该方法不存在。唉,如果我尝试使用 respond_to?
而不是 respond_to
编写测试,则测试不会运行。
有人可以向我解释一下其中的区别吗?为什么测试只能使用 respond_to
运行?
最佳答案
Ruby 将 ?
和 !
视为方法名称中的实际字符。 respond_to
和 respond_to?
是不同的。 ?
表示此应该响应 true 或 false(按照惯例;这不是必需的)。具体来说:
respond_to?
是 Ruby method用于检测该类是否具有特定方法。例如,
@user.respond_to?('eat_food')
如果 User
类具有 eat_food
方法,则返回 true。
respond_to
是 Rails method用于响应特定的请求类型。例如:
def index
@people = Person.find(:all)
respond_to do |format|
format.html
format.xml { render :xml => @people.to_xml }
end
end
但是,在您提供的 RailsTutorial 链接中,您会看到一个 RSpec 方法应该
与 RSpec 的 respond_to
进行交互。方法。除非您运行 rails console test
,否则这在您的控制台中不可用。
关于ruby-on-rails - 对 'respond_to' 与 'respond_to?' 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6849722/
我正在通过railstutorial.org学习Rails,但我对一些事情感到困惑:在 this chapter作者告诉我们在控制台中使用 User 对象的 respond_to? 方法进行一些测试,
我可以在 irb 的主要对象中使用 respond_to?(): irb(main):001:0> def foo irb(main):002:1> "hi" irb(main):003:1> e
在所有其他方法中,它与 format.html 一起工作正常,但在这个与 format.js 的方法中,它更新 View 但可见 url 保持不变 respond_to do |format| f
我目前正在构建一个需要远程表单的应用程序,我发现我从来没有真正理解rails respond_to 的工作原理。 例如,我在 View 中有以下代码 true %> 我有一个名为 _home.j
我试过: 1.respond_to? "clone" # => true 1.clone # => TypeError: can't clone Fixnum
如果您有一个要测试其存在的属性列表,并且您有以下内容: before do @attr = Employee.new(name: "One", ema
我有一个模块定义了一个方法,如果它还没有被定义的话。 ActiveRecord 的属性就是这种情况,因为它们的 getter 和 setter 未定义为方法。 module B def creat
编辑:我使用的是 Ruby 2.0.0 版 我在文件 example.rb 中有以下代码 def say_hello puts 'hi' end puts respond_to?(:say_hel
与定义 respond_to? 相比,定义 respond_to_missing? 有什么意义?如果为某些类重新定义 respond_to? 会出什么问题? 最佳答案 没有respond_to_mis
假设我有一个 ArtcilesController使用如下创建操作。 def create @article = Article.new(params[:article]) respond_t
如果我想检查是否定义了具有给定名称的方法,最好使用respond_to?或defined?? 从效率的角度来看,使用defined?可能存在争议,因为defined?是内置关键字,而respond_t
我有一个使用 form_for 和 remote: true 设置的表单。 正如预期的那样,vocab Controller 中的相应更新操作将请求作为 JS 处理: Processing by V
我的 cart_controller 中有几个 Action 。我在/carts 中有 2 个 View :payment.html.erb 和 pay.html.erb def pay suc
我的 Rails 应用程序中创建 Controller 中的 respond_to block 在成功保存时没有重定向...我确信这是一个简单的解决方案,但我对 Rails 缺乏经验,这是我第一次遇到
我的 cart_controller 中有几个 Action 。我在/carts 中有 2 个 View :payment.html.erb 和 pay.html.erb def pay suc
我试图解决这个问题,但我需要帮助! 我正在使用rails 3和jquery,我包含rails.js并使用gem'jquery-rails'来创建它 - 但仍然;使用 $.ajax({url: self
我有一个评级 Controller ,其创建操作通过 Javascript 调用。我的评级文件夹中有一个 create.js 文件。我想为了调用 create.js 文件你需要这样的东西 respon
我的 Controller 中有这个方法: def index @hedge_fund_index_matrix = HedgeFundIndices.matrix @hedge_fu
最近我一直在尝试Rails,并且开始喜欢上respond_to。 在 PHP 中是否可以做这样的事情?,响应不同类型的请求。因此,即使禁用了 javascript,也很容易实现替代方法。 最佳答案 您
我目前正在尝试为收费表单编写功能测试,该表单通过 AJAX(jQuery) 加载到页面上。它从 charge_form 操作加载表单,该操作返回 Consult_form.js.erb View 。
我是一名优秀的程序员,十分优秀!