- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我的 Rails 应用 Controller 中有这段代码:
def delete
object = model.datamapper_class.first(:sourced_id => params[:sourced_id])
if object.blank?
render :xml => "No #{resource} with sourced_id #{params[:sourced_id]}", :status => :not_found and return
kết thúc
object.destroy
render :xml => "", :status => :no_content
rescue MysqlError => e
puts "raised MysqlError #{e.message}"
render :xml => e.message, :status => :unprocessable_entity and return
rescue Mysql::Error => e
puts "raised Mysql::Error #{e.message}"
render :xml => e.message, :status => :unprocessable_entity and return
rescue Exception => e
puts "not a MysqlError, instead it was a #{e.class.name}"
render :xml => e.message, :status => :unprocessable_entity and return
kết thúc
当我运行我的规范以确保我的外键约束有效时,我得到了这个:
not a MysqlError, instead it was a MysqlError
这里可能发生了什么?
一些祖宗资料:当我改救给我这个:
puts MysqlError.ancestors
puts "****"
puts Mysql::Error.ancestors
puts "****"
puts e.class.ancestors
这是我得到的:
Mysql::Error
StandardError
Ngoại lệ
ActiveSupport::Dependencies::Blamable ...
****
Mysql::Error
StandardError
Ngoại lệ
ActiveSupport::Dependencies::Blamable ...
****
MysqlError
StandardError
Ngoại lệ
ActiveSupport::Dependencies::Blamable ...
全局命名空间中是否存在使 MysqlError 类无法访问的别名?
câu trả lời hay nhất
Ruby 类只是对象,因此比较基于对象标识(即,底层的相同指针)。
不确定您的情况发生了什么,但我会尝试在几个位置进行调试并查看您为 MysqlError 获得的对象 ID 和祖先。我怀疑不同模块中有两个这样的对象,而您的 catch 子句引用了错误的对象。
biên tập:
这很奇怪。我现在的猜测是 MysqlError 或它的祖先之一已包含在您的 Controller 自己的类链中的两个不同点,这会以某种方式触发异常捕获。
理论 #2 是因为 rails 重新定义了 const_missing 来执行自动请求,所以您期望在异常处理子句中获得 UndefinedConstant 异常的地方反而是在源代码树中的哪个位置找到具有该名称的东西。您应该能够通过测试需要关闭的 auto 来查看是否是这种情况(即在开发和生产模式下进行一些调试)。
有一种语法可以强制您的引用从根目录开始,如果您能找出要引用的正确目录,这可能会有所帮助:
::Foo::Bar
咆哮:
这种事情是我认为 ruby 显示的一些缺陷的地方。在 Ruby 的对象模型和范围内,所有对象结构都相互指向,其方式与 javascript 或其他基于原型(prototype)的语言非常相似。但这在您在该语言中使用的类/模块语法中表现得不一致。似乎通过一些仔细的重构,您可以使这些东西更清晰并简化语言,尽管这当然会与现有代码高度不兼容。
gợi ý:
当使用 puts 进行调试时,尝试执行 puts foo.inspect,因为这将以您在 irb 中习惯的方式显示它。
关于ruby - 什么时候 Ruby 类不是那个 Ruby 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1134752/
Dưới đây là một máy chủ Ruby rất đơn giản. require 'socket' local_socket = Socket.new(:INET, :STREAM) local_addr = Socket.
Tôi đang sử dụng OS X (sử dụng bash) và chưa quen với unix. Tôi muốn biết liệu tôi có thể sửa đổi một số tệp để có thể chạy chương trình Ruby hay không, tôi không cần "Ruby file.rb" nhưng có thể chạy "Ruby.rb". hợp lý
Tôi đang gặp một số vấn đề khi thay thế chuỗi trong Ruby. Văn bản gốc của tôi: Việc con người làm không bằng việc thú vật làm. Tôi muốn thay thế nó bằng: ==Những gì== con người làm không giống ==những gì== động vật làm.
Tôi muốn làm điều gì đó như thế này từ tập lệnh Ruby trong một vòng lặp: viết một tệp a.rb (thay đổi mỗi lần lặp) hệ thống thực thi (Ruby 'a.rb') a.rb viết một chuỗi có kết quả vào một tệp "results " a.rb đã hoàn thành và
Vấn đề của tôi là cố gắng tạo một máy chủ cục bộ để tôi có thể hiểu ứng dụng đang được nhóm mới của tôi phát triển. Vấn đề của tôi là tôi đang sử dụng Ruby 2.3.3 và Gemfile yêu cầu 2.3.1. Tôi không thể chỉnh sửa Gemfile vì tôi được bảo là
Tôi có tiện ích dòng lệnh được viết bằng Ruby bằng khung GLI. Tôi muốn định cấu hình tiện ích dòng lệnh trong thư mục chính của mình, sử dụng chính Ruby làm DSL để xử lý nó (tương tự như Gemfile hoặc Rakefile). TÔI
Tôi có mã này trong Trình điều khiển ứng dụng Rails của mình: def delete object = model.datamapper_class.first(:sourced_id =>
Tôi đang tìm một trình phân tích cú pháp: thân thiện với việc phân tích cú pháp Ruby, có các quy tắc được thiết kế trang nhã, tạo ra các lỗi phân tích cú pháp thân thiện với người dùng, có nhiều tài liệu hướng dẫn người dùng hơn ví dụ về máy tính, CẬP NHẬT: cho phép bỏ qua khoảng trắng tùy chọn khi viết ngữ pháp. Phân tích cú pháp nhanh không phải là một tính năng quan trọng.
Tôi mới làm quen với Ruby và tôi nghe nói rằng có một cách viết mã "Ruby". Ngoài Ruby on Rails, dự án nào khác đáng học và được công nhận là có thiết kế tốt? Câu trả lời hay nhất Tôm được tạo ra rõ ràng không chỉ là một bản PDF hay
Tôi biết một câu hỏi tương tự đã được hỏi trước đây, nhưng làm cách nào để tạo tệp Ruby có thể chạy trong thiết bị đầu cuối mà không cần nhập "Ruby" ở phía trước? Mục tiêu cuối cùng ở đây là tạo ra một loại bộ công cụ dòng lệnh. Bây giờ, để làm được điều tôi muốn người dùng có thể làm
Ví dụ: hàm băm a là {:name=>'mike',:age=>27,:gender=>'male'} hàm băm b là {:name=>'mike'} Tôi tự hỏi liệu có cách nào tốt hơn để xác định liệu hàm băm b có nằm trong hàm băm hay không và
Tôi là nhà phát triển ASP.NET MVC, người đã quyết định học Ruby và Ruby on Rails. Tôi đã học được một chút và tạo một trang web trên RoR. Phát triển trên ASP.NET MVC, tôi luôn sử dụng kiến trúc ba tầng:
Gần đây tôi thấy Gary Bernhardt trình diễn các phím tắt vim mà anh ấy sử dụng để thực thi mã Ruby trong vim. Phím tắt là: map ,t :w\|:!ruby %. Có vẻ như phương thức này luôn thực thi hệ thống Rub
Trong câu trả lời được chọn cho câu hỏi này về Blue Ruby, Chuck đã nói: Tất cả các triển khai Ruby hiện tại được biên dịch thành
Tôi có một mảng Ruby > list =Request.find_all_by_artist("Metallica").map(&:song) => ["Không có gì khác quan trọng"
Tôi đang gặp rắc rối với việc làm tròn. Tôi có một số float mà tôi muốn làm tròn đến một phần trăm dấu thập phân. Tuy nhiên, tôi chỉ có thể sử dụng .round về cơ bản biến nó thành int, nghĩa là 2.34.round # => 2. Có cái nào không
Tôi đã viết một ứng dụng web nhỏ sử dụng Ruby on Rails, mục đích chính của nó là tải lên, lưu trữ và hiển thị kết quả từ tệp xml (tệp có dung lượng tối đa vài MB). Sau khi chạy nó được khoảng 2 tháng, tôi nhận thấy rằng quy trình lai
Làm cách nào chúng ta có thể chuyển đổi một chuỗi như thế này trong Ruby: To: Latorre Best Answers = "" => "" su
Khi đi qua ruby monk, thỉnh thoảng họ ném vào một đoạn mã từ trường bên trái với cú pháp lạ: def tính toán (xyz) trả về nil trừ khi xyz xyz.map {|a,
Tôi không chắc mình đang làm gì sai, nhưng có vẻ như tôi đang hiểu sai. Vấn đề là, với một chuỗi số được phân tách bằng dấu cách, bạn phải trả về số lớn nhất và nhỏ nhất. LƯU Ý: Tất cả các số đều là Int32 hợp lệ, không cần xác thực chúng. Luôn có ít nhất một số trong chuỗi đầu vào. Chuỗi đầu ra phải
Tôi là một lập trình viên xuất sắc, rất giỏi!