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

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

10
มี "ทำ ... ในขณะที่" ห่วงในทับทิม?
ฉันใช้รหัสนี้เพื่อให้ผู้ใช้ป้อนชื่อในขณะที่โปรแกรมเก็บไว้ในอาร์เรย์จนกว่าพวกเขาจะใส่สตริงว่าง (พวกเขาต้องกด Enter หลังจากแต่ละชื่อ): people = [] info = 'a' # must fill variable with something, otherwise loop won't execute while not info.empty? info = gets.chomp people += [Person.new(info)] if not info.empty? end รหัสนี้จะดูดีกว่ามากในการทำ ... ในขณะที่วง: people = [] do info = gets.chomp people += [Person.new(info)] if not info.empty? while …
454 ruby  loops 

10
เมื่อใดที่จะใช้ RSpec let ()
ฉันมักจะใช้ก่อนบล็อกเพื่อตั้งค่าตัวแปรอินสแตนซ์ จากนั้นฉันก็ใช้ตัวแปรเหล่านั้นกับตัวอย่างของฉัน let()ฉันเพิ่งมาถึง ตามเอกสาร RSpec มันถูกใช้เพื่อ ... เพื่อกำหนดวิธีใช้ตัวช่วยจำ ค่าจะถูกแคชระหว่างการโทรหลายครั้งในตัวอย่างเดียวกัน แต่จะไม่ข้ามตัวอย่าง สิ่งนี้แตกต่างจากการใช้ตัวแปรอินสแตนซ์ในบล็อกก่อนหน้าอย่างไร และเมื่อใดที่คุณควรใช้let()vs before()?
448 ruby  rspec 

3
เมื่อลิงปะวิธีอินสแตนซ์คุณสามารถเรียกวิธีการแทนที่จากการใช้งานใหม่ได้หรือไม่?
สมมติว่าฉันกำลังแก้ไขวิธีการลิงในชั้นเรียนฉันจะเรียกวิธีการแทนที่จากวิธีการเอาชนะได้อย่างไร นั่นคือบางสิ่งบางอย่างเช่นsuper เช่น class Foo def bar() "Hello" end end class Foo def bar() super() + " World" end end >> Foo.new.bar == "Hello World"


9
ความแตกต่างระหว่างคลาสและโมดูล
ฉันมาจาก Java และตอนนี้ฉันทำงานกับทับทิมได้มากกว่าเดิม moduleคุณลักษณะภาษาหนึ่งที่ผมไม่คุ้นเคยกับการเป็น ฉันกำลังสงสัยว่าmoduleคุณใช้หนึ่งตัวและเมื่อไหร่และทำไมจึงใช้ตัวmoduleต่อclass?
438 ruby  class  module 


5
ความแตกต่างระหว่างแผนที่และสะสมในทับทิม?
ฉันได้ Googled สิ่งนี้และมีความคิดเห็นที่เป็นหย่อม ๆ / ขัดแย้ง - จริง ๆ แล้วมีความแตกต่างระหว่างการทำ a mapและ a collectarray ใน Ruby / Rails หรือไม่? เอกสารดูเหมือนจะไม่แนะนำใด ๆ แต่อาจจะมีความแตกต่างในวิธีการหรือประสิทธิภาพ?
427 ruby  arrays  map  collect 

10
รูบีแบบทวิภาค `::` คืออะไร?
ลำไส้ใหญ่คู่นี้คือ::อะไร Foo::Barเช่น ฉันพบคำจำกัดความ : The ::เป็นตัวดำเนินการเอกที่อนุญาตให้: ค่าคงที่, วิธีการอินสแตนซ์และวิธีการเรียนที่กำหนดไว้ในชั้นเรียนหรือโมดูลที่จะเข้าถึงได้จากทุกที่นอกชั้นเรียนหรือโมดูล สิ่งที่ดีคือขอบเขต (ส่วนตัวได้รับการป้องกัน) ถ้าคุณสามารถใช้::เพื่อเปิดเผยอะไร
427 ruby  syntax  operators 

7
วิธีการแยกออกจากบล็อกทับทิม?
นี่คือBar#do_things: class Bar def do_things Foo.some_method(x) do |x| y = x.do_something return y_is_bad if y.bad? # how do i tell it to stop and return do_things? y.do_something_else end keep_doing_more_things end end และนี่คือFoo#some_method: class Foo def self.some_method(targets, &block) targets.each do |target| begin r = yield(target) rescue failed << target end end …
420 ruby 


6
ความแตกต่างระหว่างการรวมและการขยายในทับทิมคืออะไร?
เพิ่งได้รับหัวของฉันเกี่ยวกับการเขียนโปรแกรมทับทิม mixin / modules จัดการเพื่อสร้างความสับสนให้ฉันเสมอ รวม : ผสมในวิธีการโมดูลที่ระบุเป็นวิธีการอินสแตนซ์ในชั้นเรียนเป้าหมาย Extended : ผสมในวิธีการโมดูลที่ระบุว่าเป็นวิธีการเรียนในชั้นเรียนเป้าหมาย ดังนั้นความแตกต่างที่สำคัญเพียงแค่นี้หรือเป็นมังกรที่ซุ่มซ่อนขนาดใหญ่กว่า? เช่น module ReusableModule def module_method puts "Module Method: Hi there!" end end class ClassThatIncludes include ReusableModule end class ClassThatExtends extend ReusableModule end puts "Include" ClassThatIncludes.new.module_method # "Module Method: Hi there!" puts "Extend" ClassThatExtends.module_method # "Module Method: Hi there!"
415 ruby  module  include  extend 


11
วิธีที่ง่ายที่สุดในการทำซ้ำบันทึกสถิติของ Activerecord คืออะไร
ฉันต้องการทำสำเนาบันทึก activerecord โดยเปลี่ยนฟิลด์เดียวในกระบวนการ (นอกเหนือจากid ) วิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้คืออะไร? ฉันรู้ว่าฉันสามารถสร้างระเบียนใหม่จากนั้นวนซ้ำแต่ละเขตข้อมูลคัดลอกเขตข้อมูลแต่ละเขตข้อมูล - แต่ฉันคิดว่าต้องมีวิธีที่ง่ายกว่าในการทำเช่นนี้ ... เช่น: @newrecord=Record.copy(:id) *perhaps?*

7
วิธีการรันภารกิจเรคจากภายในงานเรค?
ฉันมี Rakefile ที่รวบรวมโครงการในสองวิธีตามตัวแปรทั่วโลก$build_typeซึ่งอาจเป็น:debugหรือ:release(ผลลัพธ์ไปในไดเรกทอรีที่แยกต่างหาก): task :build => [:some_other_tasks] do end ฉันต้องการสร้างงานที่รวบรวมโครงการด้วยการกำหนดค่าทั้งสองแบบดังนี้: task :build_all do [ :debug, :release ].each do |t| $build_type = t # call task :build with all the tasks it depends on (?) end end มีวิธีเรียกงานราวกับว่ามันเป็นวิธีการหรือไม่? หรือฉันจะบรรลุสิ่งที่คล้ายกันได้อย่างไร
411 ruby  rake 

16
เกิดข้อผิดพลาดขณะติดตั้ง json gem 'mkmf.rb ไม่พบไฟล์ส่วนหัวสำหรับ ruby'
สำหรับบริบทนั้นอยู่บนเซิร์ฟเวอร์ระยะไกลที่มีไฟร์วอลล์ ฉันกำลังตั้งค่าสภาพแวดล้อมผ่านพรอกซี ruby 1.8.7ฉันมี เมื่อฉันพยายามที่จะติดตั้งอัญมณี .. sudo gem install --http-proxy <host address>:<port> json ฉันได้รับข้อผิดพลาดต่อไปนี้: Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h Gem files will remain installed in …
407 json  ruby  rubygems 

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