คำถามติดแท็ก ruby

Ruby เป็นหลายภาษาแพลตฟอร์มตีความโอเพ่นซอร์สเชิงวัตถุแบบไดนามิกที่สร้างขึ้นโดย Yukihiro Matsumoto (Matz) ในปี 1995 แท็ก [ruby] สำหรับคำถามที่เกี่ยวข้องกับภาษา Ruby รวมถึงไวยากรณ์และห้องสมุดของมัน ควรติดแท็กคำถาม Ruby on Rails ด้วย [ruby-on-rails]

9
เหตุใด Ruby จึงไม่รองรับ i ++ หรือ i - (ตัวดำเนินการเพิ่ม / ลด)
ตัวดำเนินการเพิ่ม / ลดก่อน / หลัง ( ++และ--) เป็นไวยากรณ์ภาษาโปรแกรมมาตรฐานที่ค่อนข้างดี (สำหรับภาษาขั้นตอนและภาษาเชิงวัตถุอย่างน้อย) ทำไม Ruby ถึงไม่สนับสนุนพวกเขา? ฉันเข้าใจว่าคุณสามารถทำในสิ่งเดียวกันได้ด้วย+=และ-=แต่มันก็ดูเป็นเรื่องแปลกที่จะไม่รวมบางสิ่งเช่นนั้นโดยพลการโดยเฉพาะอย่างยิ่งเนื่องจากมันกระชับและเป็นแบบแผน ตัวอย่าง: i = 0 #=> 0 i += 1 #=> 1 i #=> 1 i++ #=> expect 2, but as far as I can tell, #=> irb ignores the second + and waits for a second number …

3
สร้างอาร์เรย์ของสัญลักษณ์
มีวิธีที่สะอาดกว่านี้ไหมในการทำสิ่งนี้ %w[address city state postal country].map(&:to_sym) #=> [:address, :city, :state, :postal, :country] ฉันคิดว่า%sจะได้ทำในสิ่งที่ฉันต้องการ แต่มันไม่ทำ ใช้เวลาทุกอย่างอยู่ระหว่างวงเล็บและสร้างสัญลักษณ์ขนาดใหญ่หนึ่งสัญลักษณ์ออกมา เพียงแค่ความรำคาญเล็กน้อย
130 ruby 

19
ไม่รองรับกลไกการให้สิทธิ์ที่คุณระบุ โปรดใช้ AWS4-HMAC-SHA256
ฉันได้รับข้อผิดพลาดAWS::S3::Errors::InvalidRequest The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.เมื่อพยายามอัปโหลดไฟล์ไปยังถัง S3 ในภูมิภาคแฟรงค์เฟิร์ตใหม่ ทั้งหมดทำงานได้อย่างถูกต้องกับUS Standardภูมิภาค สคริปต์: backup_file = '/media/db-backup_for_dev/2014-10-23_02-00-07/slave_dump.sql.gz' s3 = AWS::S3.new( access_key_id: AMAZONS3['access_key_id'], secret_access_key: AMAZONS3['secret_access_key'] ) s3_bucket = s3.buckets['test-frankfurt'] # Folder and file name s3_name = "database-backups-last20days/#{File.basename(File.dirname(backup_file))}_#{File.basename(backup_file)}" file_obj = s3_bucket.objects[s3_name] file_obj.write(file: backup_file) aws-sdk (1.56.0) ต้องแก้ไขอย่างไร? ขอบคุณ.

6
สำเนาของ xxx ถูกลบออกจากโครงสร้างโมดูล แต่ยังทำงานอยู่
ฉันค่อนข้างมั่นใจว่าข้อผิดพลาดไม่เกี่ยวข้องกับเนื้อหาจริงของTenantIdLoaderโมดูล แต่มันมีบางอย่างที่เกี่ยวข้องกับการActiveSupportพึ่งพา ดูเหมือนว่าฉันจะผ่านข้อผิดพลาดนี้ไม่ได้ จากสิ่งที่ฉันอ่านอาจเป็นเพราะActiveRecord::Baseกำลังโหลดซ้ำหรือCompany::TenantIdLoaderกำลังโหลดซ้ำและมันก็ไม่ได้สื่อถึงสิ่งนั้น ช่วยด้วย! ฉันอยากจะอัปเกรดเป็น Rails 4.2 แก้ไข ตอนนี้ฉันได้เรียนรู้แล้วว่าเป็นเพราะฉันกำลังอ้างอิงTenantซึ่งกำลังโหลดซ้ำโดยอัตโนมัติ ฉันต้องสามารถอ้างอิงชั้นเรียนได้จริงมีใครรู้วิธีแก้ปัญหานี้บ้าง config / application.rb config.autoload_paths += %W( #{config.root}/lib/company ) config / initializers / company.rb ActionMailer::Base.send(:include, Company::TenantIdLoader) lib / บริษัท / tenant_id_loader.rb module Company module TenantIdLoader extend ActiveSupport::Concern included do cattr_accessor :tenant_dependency self.tenant_dependency = {} after_initialize do self.tenant_id = Tenant.active.id if …


1
เหตุใดผลรวมจึงเร็วกว่าการฉีด (: +) มาก
ดังนั้นฉันจึงใช้เกณฑ์มาตรฐานใน Ruby 2.4.0 และตระหนักว่า (1...1000000000000000000000000000000).sum คำนวณทันทีในขณะที่ (1...1000000000000000000000000000000).inject(:+) ใช้เวลานานมากจนฉันเพิ่งยกเลิกการผ่าตัด ฉันรู้สึกว่าRange#sumเป็นนามแฝงRange#inject(:+)แต่ดูเหมือนว่าจะไม่เป็นความจริง แล้วมันsumทำงานอย่างไรและทำไมถึงเร็วกว่ามากinject(:+)? หมายเหตุเอกสารสำหรับEnumerable#sum(ซึ่งดำเนินการโดยRange) ไม่ได้กล่าวอะไรเกี่ยวกับการประเมินแบบขี้เกียจหรืออะไรเลย
129 ruby 

2
วิธีการส่งทับทิมผ่านพารามิเตอร์หลายตัว
พยายามสร้างวัตถุและเรียกวิธีการแบบไดนามิกโดย Object.const_get(class_name).new.send(method_name,parameters_array) ซึ่งทำงานได้ดีเมื่อ Object.const_get(RandomClass).new.send(i_take_arguments,[10.0]) แต่โยนอาร์กิวเมนต์ผิดจำนวน 1 สำหรับ 2 สำหรับ Object.const_get(RandomClass).new.send(i_take_multiple_arguments,[25.0,26.0]) คลาสสุ่มที่กำหนดไว้คือ class RandomClass def i_am_method_one puts "I am method 1" end def i_take_arguments(a) puts "the argument passed is #{a}" end def i_take_multiple_arguments(b,c) puts "the arguments passed are #{b} and #{c}" end end ใครช่วยฉันเกี่ยวกับวิธีการส่งพารามิเตอร์หลายตัวไปยังวิธีการทับทิมแบบไดนามิก
129 ruby 

8
คำสั่ง rbenv install หายไป
ในUbuntu 10.04ฉันเพิ่งติดตั้งrbenv. ไม่มีคำสั่งติดตั้ง rbenv 0.4.0-49-g8b04303 Usage: rbenv <command> [<args>] Some useful rbenv commands are: commands List all available rbenv commands local Set or show the local application-specific Ruby version global Set or show the global Ruby version shell Set or show the shell-specific Ruby version rehash Rehash rbenv shims (run …

4
วันที่จัดรูปแบบราง
ฉันกำลังโพสต์วันที่ไปยัง API และรูปแบบที่ต้องการมีดังนี้: 2014-12-01T01:29:18 ฉันสามารถหาวันที่ได้จากแบบจำลองดังนี้: Model.created_at.to_s ที่ส่งคืน: 2014-12-01 01:29:18 -0500 ฉันจะใช้ Rails หรือ Ruby เพื่อจัดรูปแบบให้เหมือนกับรูปแบบที่ต้องการด้วย T และลบ -0500 ได้อย่างไร


20
วิธีการทดสอบว่าสตริงนั้นเป็นจำนวนเต็มในเครื่องหมายคำพูดโดยใช้ Ruby หรือไม่
ฉันต้องการฟังก์ชั่นis_an_integerที่ไหน "12".is_an_integer? ผลตอบแทนจริง "blah".is_an_integer? ผลตอบแทนที่เป็นเท็จ ฉันจะทำสิ่งนี้ในรูบีได้อย่างไร ฉันจะเขียน regex แต่ฉันสมมติว่ามีผู้ช่วยสำหรับสิ่งนี้ที่ฉันไม่ทราบ
128 ruby 

13
การติดตั้งราง Ubuntu ล้มเหลวบน zlib
ฉันเพิ่งย้ายไปยัง Ubuntu 8.10 เป็นกล่อง dev ของฉัน มันเป็นการโจมตีครั้งแรกของฉันใน Linux ในฐานะระบบปฏิบัติการที่ใช้ประจำวันและฉันก็ลำบากมากที่ Rails จะเริ่มทำงาน ฉันได้ติดตามบทเรียนจำนวนหนึ่งซึ่งดูเหมือนว่าจะทำงานได้ดี แต่เมื่อฉันลองและใช้ติดตั้ง gem หรืออัพเดตอัญมณีในทุกสิ่งฉันได้รับข้อผิดพลาดที่มีลักษณะดังนี้: /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- zlib (LoadError) from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:1 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:5 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:167:in `load_and_instantiate' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:88:in `[]' …


6
Rails 4 LIKE query - ActiveRecord เพิ่มเครื่องหมายคำพูด
ฉันกำลังพยายามทำแบบสอบถามแบบนี้ def self.search(search, page = 1 ) paginate :per_page => 5, :page => page, :conditions => ["name LIKE '%?%' OR postal_code like '%?%'", search, search], order => 'name' end แต่เมื่อมีการเรียกใช้บางสิ่งบางอย่างกำลังเพิ่มเครื่องหมายคำพูดซึ่งทำให้คำสั่ง sql ออกมาเป็นเช่นนั้น SELECT COUNT(*) FROM "schools" WHERE (name LIKE '%'havard'%' OR postal_code like '%'havard'%')): คุณจะเห็นปัญหาของฉัน ฉันใช้ Rails 4 และ Postgres …

7
คุณเปิดใช้งาน X แล้ว แต่ Gemfile ของคุณต้องการ Y
เมื่อเรียกใช้rakeฉันได้รับข้อผิดพลาดนี้: คุณได้เปิดใช้งานคราด 0.9.2 แล้ว แต่ Gemfile ของคุณต้องการคราด 0.8.7 พิจารณาใช้ Bundle exec การใช้bundle exec rakeแทนที่จะrakeดูเหมือนจะใช้งานได้ แต่เป็นวิธีที่ดีที่สุดในการแก้ไขปัญหานี้หรือไม่?
128 ruby  rubygems  bundler 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.