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

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

12
รับคลาสดูว่าอินสแตนซ์มีเมธอด (Ruby) หรือไม่
ฉันรู้ใน Ruby ว่าฉันสามารถใช้respond_to?เพื่อตรวจสอบว่าวัตถุมีวิธีการบางอย่าง แต่ให้ชั้นเรียนฉันจะตรวจสอบว่าอินสแตนซ์มีวิธีการบางอย่างได้อย่างไร นั่นคือสิ่งที่ชอบ Foo.new.respond_to?(:bar) แต่ฉันรู้สึกว่ามีวิธีที่ดีกว่าการสร้างอินสแตนซ์ใหม่
227 ruby  respond-to 

5
คลิปหนีบกระดาษ :: ข้อผิดพลาด :: MissingRequiredValidatorError with Rails 4
ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามอัปโหลดโดยใช้คลิปหนีบกระดาษกับแอพบล็อกของฉัน ไม่แน่ใจว่ามันหมายถึงอะไรเมื่อมีข้อความว่า "MissingRequiredValidatorError" ฉันคิดว่าการอัปเดต post_params และให้มัน: ภาพมันจะดีเพราะทั้งสร้างและอัปเดตใช้ post_params Paperclip::Errors::MissingRequiredValidatorError in PostsController#create Paperclip::Errors::MissingRequiredValidatorError Extracted source (around line #30): def create @post = Post.new(post_params) นี่คือ posts_controller.rb ของฉัน def update @post = Post.find(params[:id]) if @post.update(post_params) redirect_to action: :show, id: @post.id else render 'edit' end end def new @post = Post.new end def create …

3
ความคิดเห็น“ Frozen_string_literal: true” ทำอะไรได้บ้าง
นี่คือrspecbinstub ในไดเรกทอรีโครงการของฉัน #!/usr/bin/env ruby begin load File.expand_path("../spring", __FILE__) rescue LoadError end # frozen_string_literal: true # # This file was generated by Bundler. # # The application 'rspec' is installed as part of a gem, and # this file is here to facilitate running it. # require "pathname" ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", …

7
ฉันจะกลับก่อนได้อย่างไรจากภารกิจคราด?
ฉันมีงานเรคที่ฉันทำการตรวจสอบบางอย่างเมื่อเริ่มต้นหากการตรวจสอบอย่างใดอย่างหนึ่งล้มเหลวฉันต้องการกลับก่อนจากงานเรคฉันไม่ต้องการรันโค้ดใด ๆ ที่เหลืออยู่ ฉันคิดว่าวิธีแก้ปัญหาคือการวางคืนที่ฉันต้องการกลับจากรหัส แต่ฉันได้รับข้อผิดพลาดต่อไปนี้ unexpected return
226 ruby  rake 

13
Ruby: วิธีที่ง่ายที่สุดในการกรอง Hash Keys?
ฉันมีแฮชที่มีลักษณะดังนี้: params = { :irrelevant => "A String", :choice1 => "Oh look, another one", :choice2 => "Even more strings", :choice3 => "But wait", :irrelevant2 => "The last string" } และฉันต้องการวิธีง่ายๆในการปฏิเสธกุญแจทั้งหมดที่ไม่ใช่ตัวเลือก + int มันอาจเป็นทางเลือก 1 หรือทางเลือก 1 ผ่านทางเลือก 10 มันแตกต่างกันไป ฉันจะทำกุญแจด้วยตัวเลือกคำและตัวเลขหรือหลักหลังพวกเขาได้อย่างไร โบนัส: แปลงแฮชเป็นสตริงด้วยแท็บ (\ t) เป็นตัวคั่น ฉันทำสิ่งนี้ แต่ใช้โค้ดหลายบรรทัด โดยปกติแล้วผู้เชี่ยวชาญ Rubician สามารถทำได้ในหนึ่งหรือมากกว่านั้น
225 ruby 

18
วิธีที่ดีที่สุดในการจำลองเหตุการณ์ที่เกิดขึ้นในแอปพลิเคชันปฏิทินคืออะไร
ฉันกำลังสร้างแอปพลิเคชันปฏิทินกลุ่มที่ต้องการสนับสนุนกิจกรรมที่เกิดซ้ำ แต่โซลูชันทั้งหมดที่ฉันใช้เพื่อจัดการเหตุการณ์เหล่านี้ดูเหมือนจะเป็นแฮ็ค ฉันสามารถ จำกัด ว่าจะดูได้ไกลแค่ไหนแล้วสร้างกิจกรรมทั้งหมดในครั้งเดียว หรือฉันสามารถจัดเก็บกิจกรรมเป็นการทำซ้ำและแสดงแบบไดนามิกเมื่อมองไปข้างหน้าในปฏิทิน แต่ฉันจะต้องแปลงให้เป็นกิจกรรมปกติหากมีคนต้องการเปลี่ยนรายละเอียดในกรณีเฉพาะของเหตุการณ์ ฉันแน่ใจว่ามีวิธีที่ดีกว่าในการทำเช่นนี้ แต่ฉันยังไม่พบ วิธีที่ดีที่สุดในการจำลองเหตุการณ์ที่เกิดขึ้นซ้ำซึ่งคุณสามารถเปลี่ยนรายละเอียดหรือลบอินสแตนซ์ของเหตุการณ์ได้คืออะไร (ฉันใช้ Ruby แต่โปรดอย่าปล่อยให้สิ่งนั้น จำกัด คำตอบของคุณหากมีไลบราเฉพาะของ Ruby หรือบางอย่างมันก็เป็นการดีที่จะรู้)

5
ทำลายสตริงที่ยาวในหลายบรรทัดใน Ruby โดยไม่ต้องขึ้นบรรทัดใหม่
เมื่อเร็ว ๆ นี้เราตัดสินใจที่จะทำงานกับไกด์สไตล์ทับทิม หนึ่งในสิตที่ไม่ควรมีความกว้างเกิน 80 ตัวอักษร เนื่องจากนี่เป็นโครงการ Rails เรามักจะมีสตริงที่ยาวกว่าเล็กน้อยนั่นคือ " User X ต้องการส่งข้อความเกี่ยวกับ Thing Y " ให้คุณซึ่งไม่เหมาะกับความยาวของอักขระ 80 ตัว ฉันเข้าใจว่ามีสามวิธีในการใช้สตริงที่มีความยาวหลายบรรทัด: HEREDOC Q% {} การต่อสตริงที่เกิดขึ้นจริง อย่างไรก็ตามกรณีทั้งหมดนี้จบลงด้วยการคำนวณรอบมากขึ้นซึ่งดูเหมือนว่าโง่ สตริงอย่างเห็นได้ชัด แต่สำหรับHEREDOCและฉันต้องดึงออกจากการขึ้นบรรทัดใหม่ผ่านสิ่งที่ต้องการ%Q.gsub(/\n$/, '') มีวิธีทางไวยากรณ์ที่บริสุทธิ์ในการทำเช่นนี้ซึ่งเทียบเท่ากับเพียงแค่มีทั้งสายในหนึ่งบรรทัด? เห็นได้ชัดว่าเป้าหมายคือการไม่ใช้รอบพิเศษเพียงเพราะฉันต้องการรหัสของฉันจะอ่านง่ายขึ้นเล็กน้อย (ใช่ฉันรู้ว่าคุณต้องทำให้การแลกเปลี่ยนนั้นมาก ... แต่สำหรับความยาวของสตริงสิ่งนี้ดูเหมือนจะไร้สาระ) อัปเดต: แบ็กสแลชไม่ได้เป็นอย่างที่ฉันต้องการเพราะคุณเสียการเยื้องซึ่งส่งผลต่อสไตล์ / ความสามารถในการอ่าน ตัวอย่าง: if foo string = "this is a \ string that spans lines" …

11
คุณจะทำอย่างไรเวลาญาติใน Rails?
ฉันเขียนแอปพลิเคชั่น Rails แต่ดูเหมือนจะไม่สามารถหาเวลาที่สัมพันธ์กันได้เช่นถ้ามีการกำหนดเวลาที่แน่นอนสามารถคำนวณได้ "30 วินาทีก่อน" หรือ "2 วันก่อน" หรือถ้านานกว่าหนึ่งเดือน "9/1/2551" เป็นต้น


20
ไม่สามารถติดตั้ง pg gem
ฉันลองใช้gem install pgแต่ดูเหมือนจะใช้งานไม่ได้ gem install pg ให้ข้อผิดพลาดนี้ Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. C:/Ruby/bin/ruby.exe extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config …

6
วิธีการรับเอาต์พุตเฉพาะการวนซ้ำแฮชใน Ruby
ฉันต้องการรับเอาต์พุตเฉพาะการทำซ้ำ Ruby Hash นี่คือแฮชที่ฉันต้องการทำซ้ำ: hash = { 1 => ['a', 'b'], 2 => ['c'], 3 => ['d', 'e', 'f', 'g'], 4 => ['h'] } นี่คือผลลัพธ์ที่ฉันต้องการได้รับ: 1----- a b 2----- c 3----- d e f g 4----- h ใน Ruby ฉันจะรับเอาต์พุตดังกล่าวด้วย Hash ของฉันได้อย่างไร
218 ruby  hash  output 

15
find_spec_for_exe ': ไม่สามารถหา gem bundler (> = 0.a) (Gem :: GemNotFoundException)
ฉันใช้sudo bundle installและนั่นอาจเป็นสาเหตุของปัญหาหรือไม่ ตอนนี้ฉันมี: gem -v 2.6.14 ruby -v ruby 2.3.5p376 (2017-09-14 รุ่นที่ปรับปรุง 59905) [x86_64-darwin15] jekyll -v jekyll 3.6.2 bundle -vBundler เวอร์ชั่น 1.16.0.pre.3 ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามเรียกใช้bundle exec jekyll serveหรือเพียงแค่jekyll serve /Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:271:in `find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException) from /Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:299:in `activate_bin_path' from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/bundle:23:in `<main>' from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in `eval' from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in `<MacBooMacBook-MacBook-MacBook-Pro-MacBook-PrMacBook-MacBooMacBMaMacBMaMaMaMaMaMaMaMaMacBMaMaMaMacBMa นอกจากนี้เมื่อเข้าถึงโฟลเดอร์ที่ฉันมีบล็อกของcd …
218 ruby  rubygems  bundle  jekyll 


8
จะสร้างวิธีเรียนแบบส่วนตัวได้อย่างไร?
วิธีการในการสร้างวิธีการเรียนแบบส่วนตัวนี้เป็นอย่างไร class Person def self.get_name persons_name end class << self private def persons_name "Sam" end end end puts "Hey, " + Person.get_name puts "Hey, " + Person.persons_name #=> raises "private method `persons_name' called for Person:Class (NoMethodError)" แต่นี่ไม่ได้: class Person def self.get_name persons_name end private def self.persons_name "Sam" end end puts …

6
ความแตกต่างระหว่างวิธีการซ้ำและการรูบี้ของรูบี้คืออะไร?
เอกสารทับทิมสำหรับdupพูด: โดยทั่วไปcloneและdupอาจมีความหมายที่แตกต่างกันในชั้นเรียนสืบทอด ในขณะที่cloneใช้ในการทำซ้ำวัตถุรวมถึงสถานะภายในของมันdupมักจะใช้ชั้นเรียนของวัตถุสืบทอดมาเพื่อสร้างอินสแตนซ์ใหม่ แต่เมื่อฉันทำการทดสอบฉันพบว่าพวกเขาเหมือนกันจริง: class Test attr_accessor :x end x = Test.new x.x = 7 y = x.dup z = x.clone y.x => 7 z.x => 7 ดังนั้นความแตกต่างระหว่างสองวิธีคืออะไร?
214 ruby  clone  dup 

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