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

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

19
ฟังก์ชันแฟกทอเรียลของรูบี้
ฉันจะบ้า: ฟังก์ชัน Ruby สำหรับแฟกทอเรียลอยู่ที่ไหน? ไม่ฉันไม่ต้องการการใช้งานบทช่วยสอนฉันแค่ต้องการฟังก์ชันจากไลบรารี มันไม่ได้อยู่ในคณิตศาสตร์! ฉันเริ่มสงสัยว่ามันเป็นฟังก์ชันไลบรารี่มาตรฐานหรือไม่?
89 ruby  math  factorial 

10
ฉันจะค้นหาระบบปฏิบัติการใดที่โปรแกรม Ruby ของฉันทำงานอยู่ได้อย่างไร
ฉันต้องการให้โปรแกรม Ruby ของฉันทำสิ่งต่างๆบนเครื่อง Mac มากกว่าบน Windows ฉันจะทราบได้อย่างไรว่าโปรแกรมของฉันกำลังทำงานอยู่ในระบบใด

2
จะเขียนคำสั่ง Ruby switch (case … when) ด้วย regex และ backreferences ได้อย่างไร?
ฉันรู้ว่าฉันสามารถเขียนคำสั่งกรณี Ruby เพื่อตรวจสอบการจับคู่กับนิพจน์ทั่วไป อย่างไรก็ตามฉันต้องการใช้ข้อมูลที่ตรงกันในคำสั่งส่งคืนของฉัน บางอย่างเช่นรหัสกึ่งเทียมนี้: foo = "10/10/2011" case foo when /^([0-9][0-9])/ print "the month is #{match[1]}" else print "something else" end ฉันจะบรรลุสิ่งนั้นได้อย่างไร? ขอบคุณ! หมายเหตุ: ฉันเข้าใจว่าฉันจะไม่ใช้คำสั่ง switch สำหรับกรณีธรรมดา ๆ ข้างต้น แต่นั่นเป็นเพียงตัวอย่างเดียว ในความเป็นจริงสิ่งที่ฉันพยายามจะบรรลุคือการจับคู่นิพจน์ทั่วไปที่เป็นไปได้สำหรับวันที่ซึ่งสามารถเขียนได้หลายวิธีจากนั้นแยกวิเคราะห์ด้วยคลาส Date ของ Ruby ตามลำดับ

9
อะไรคือวิธีที่ดีที่สุดในการตัดสตริงเป็นชิ้น ๆ ตามความยาวที่กำหนดใน Ruby?
ฉันกำลังมองหาวิธีที่สวยงามและมีประสิทธิภาพในการรวมสตริงเป็นสตริงย่อยที่มีความยาวที่กำหนดใน Ruby จนถึงตอนนี้สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ: def chunk(string, size) (0..(string.length-1)/size).map{|i|string[i*size,size]} end >> chunk("abcdef",3) => ["abc", "def"] >> chunk("abcde",3) => ["abc", "de"] >> chunk("abc",3) => ["abc"] >> chunk("ab",3) => ["ab"] >> chunk("",3) => [] คุณอาจต้องการchunk("", n)ที่จะกลับมาแทน[""] []ในกรณีนี้ให้เพิ่มสิ่งนี้เป็นบรรทัดแรกของวิธีการ: return [""] if string.empty? คุณจะแนะนำวิธีแก้ปัญหาที่ดีกว่านี้หรือไม่? แก้ไข ขอบคุณ Jeremy Ruten สำหรับโซลูชันที่หรูหราและมีประสิทธิภาพนี้: [แก้ไข: ไม่มีประสิทธิภาพ!] def chunk(string, size) string.scan(/.{1,#{size}}/) end …
89 ruby  string  chunking 

3
ถอนการติดตั้งเวอร์ชันทับทิมจาก rbenv
วิธีการถอนการติดตั้งหรือเอารุ่นทับทิมจากrbenv ฉันติดตั้งทับทิมสองเวอร์ชันแล้ว ในขณะที่เปลี่ยนมาใช้ทับทิม 1.9.3 ฉันพบข้อผิดพลาดในการแบ่งส่วน ใครช่วยได้โปรดช่วยลบเวอร์ชันเฉพาะออกจาก rbenv ได้อย่างไร
89 ruby  rbenv 

7
ใช้ 'return' ในบล็อก Ruby
ฉันกำลังพยายามใช้ Ruby 1.9.1 สำหรับภาษาสคริปต์แบบฝังเพื่อให้โค้ด "end-user" ถูกเขียนในบล็อก Ruby ปัญหาหนึ่งของเรื่องนี้คือฉันต้องการให้ผู้ใช้สามารถใช้คีย์เวิร์ด 'return' ในบล็อกได้ดังนั้นพวกเขาจึงไม่จำเป็นต้องกังวลเกี่ยวกับค่าส่งคืนโดยปริยาย ด้วยเหตุนี้สิ่งนี้จึงเป็นสิ่งที่ฉันต้องการจะทำได้: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } หากฉันใช้ 'return' ในตัวอย่างข้างต้นฉันจะได้รับ LocalJumpError ฉันทราบว่านี่เป็นเพราะบล็อกที่เป็นปัญหาเป็น Proc ไม่ใช่แลมบ์ดา รหัสจะใช้งานได้ถ้าฉันลบ 'return' ออก แต่ฉันอยากจะใช้ 'return' ในสถานการณ์นี้จริงๆ เป็นไปได้หรือไม่ ฉันได้ลองแปลงบล็อกเป็นแลมด้าแล้ว แต่ผลลัพธ์ก็เหมือนกัน

5
ActiveRecord ปลอดภัยเช่นแบบสอบถาม
ฉันกำลังพยายามเขียนข้อความค้นหา LIKE ฉันอ่านแล้วว่าคำถามสตริงที่แท้จริงไม่ปลอดภัย แต่ฉันไม่พบเอกสารใด ๆ ที่อธิบายวิธีการเขียน LIKE Hash Query ที่ปลอดภัย เป็นไปได้ไหม? ฉันควรป้องกัน SQL Injection ด้วยตนเองหรือไม่

8
รางมัดสะอาด
หลังจากอัปเดตชุดรวมคุณจะมีอัญมณีบางอย่างที่อาจล้าสมัย - เนื่องจากมีการติดตั้งอัญมณีรุ่นใหม่กว่า ไม่มีคำสั่งดังกล่าวภายใต้คือปฏิบัติการคือbundle bundle cleanเราจะกำจัดอัญมณีที่ล้าสมัยเหล่านี้ได้อย่างไร? นี่เป็นความพยายามที่จะลดขนาดกระสุนในแอปรางของฉัน


8
งานดีฟอลต์สำหรับเนมสเปซใน Rake
ให้สิ่งที่ชอบ: namespace :my_tasks do task :foo do do_something end task :bar do do_something_else end task :all => [:foo, :bar] end ฉันจะทำให้:allเป็นงานเริ่มต้นได้อย่างไรเพื่อที่rake my_tasksจะเรียกใช้ (แทนที่จะต้องเรียกrake my_tasks:all)
88 ruby  rake 

7
ฉันจะตั้งค่า HTTP_REFERER เมื่อทดสอบใน Rails ได้อย่างไร
ฉันกำลังพยายามทดสอบคอนโทรลเลอร์และพบข้อผิดพลาดนี้ ฉันเข้าใจข้อผิดพลาด แต่ไม่ทราบวิธีแก้ไข test: on CREATE to :user with completely invalid email should respond with redirect (UsersControllerTest):ActionController::RedirectBackError: No HTTP_REFERER was set in the request to this action, so redirect_to :back could not be called successfully. If this is a test, make sure to specify request.env["HTTP_REFERER"]. ระบุที่? ฉันลองสิ่งนี้: setup { post …

5
คำเตือน: ค่าคงที่ :: Fixnum เลิกใช้งานเมื่อสร้างโมเดลใหม่
ฉันพยายามหาวิธีแก้ปัญหานี้แล้ว แต่ฉันไม่พบสิ่งที่เกี่ยวข้องกับข้อผิดพลาดที่ปรากฏแก่ฉันเมื่อฉันเรียกใช้คำสั่ง rail: รางสร้างชื่อหนังสือรุ่น: สรุปสตริง: ข้อความ isbn: สตริง /home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated /home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated /home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant ::Fixnum is deprecated Running via Spring preloader in process 3579 Expected string default value for '--jbuilder'; got true (boolean) invoke active_record identical db/migrate/20170104114702_create_books.rb identical app/models/book.rb invoke test_unit …

6
Rails 4: จะรีเซ็ตฐานข้อมูลทดสอบได้อย่างไร?
ฉันใช้ Rails 4 และสังเกตเห็นว่าการทดสอบ RSpec ของฉันล้มเหลวเนื่องจากการปรับโครงสร้างการทดสอบบางส่วนของฉันใช้ตัวกรองก่อน (น่าจะเป็นเพราะการทำธุรกรรม) โพสต์นี้อธิบายถึงปัญหาที่คล้ายกัน: ฐานข้อมูลทดสอบรางไม่ล้างหลังจากการทำงานบางครั้ง แทนการใช้อัญมณี DatabaseCleaner มีคำสั่ง rake เพื่อล้างฐานข้อมูลทดสอบหรือไม่? ฉันเชื่อว่าrake db:test:prepareเลิกใช้แล้วใน Rails 4 นอกจากนี้หากก่อนทำธุรกรรมเช่น post :create, user: Fabricate.attributes_for(:user) ยังคงอยู่ มีวิธีอื่นในการปรับโครงสร้างใหม่เพื่อหลีกเลี่ยงความจำเป็นในการล้างฐานข้อมูลทดสอบด้วยตนเองหรือไม่?

9
Rails: กำลังตรวจสอบความยาวขั้นต่ำและสูงสุดของสตริง แต่ปล่อยให้ว่าง
ฉันมีช่องที่ต้องการตรวจสอบความถูกต้อง ฉันต้องการให้ฟิลด์สามารถเว้นว่างได้ แต่ถ้าผู้ใช้กำลังป้อนข้อมูลฉันต้องการให้อยู่ในรูปแบบที่แน่นอน ขณะนี้ฉันกำลังใช้การตรวจสอบความถูกต้องด้านล่างในโมเดล แต่ไม่อนุญาตให้ผู้ใช้เว้นว่างไว้: validates_length_of :foo, :maximum => 5 validates_length_of :foo, :minimum => 5 ฉันจะเขียนสิ่งนี้เพื่อบรรลุเป้าหมายได้อย่างไร

2
Ruby รับเส้นทางจาก path + ชื่อไฟล์
ภาษาโปรแกรม: Ruby 1.9 สตริงปัญหา: C:/Test/blah.txt ถึงC:/Test/ ฉันรู้ว่ามันเป็นคำถามที่ง่าย แต่ Google และ Ruby Quickref Fileไม่มีคำตอบสำหรับฉัน และฉันไม่มีประสบการณ์กับ Regex
88 ruby  directory 

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