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

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

5
ผนวกคลาสถ้าเงื่อนไขเป็นจริงใน Haml
ถ้า post.published? .post / Post stuff มิฉะนั้น .post.gray / Post stuff ฉันใช้สิ่งนี้กับผู้ช่วยรางและดูเหมือนว่าน่าเกลียด = content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do / Post stuff ตัวแปรที่สอง: = content_tag :div, :class => "post" + (post.published? ? "" : " gray") do / Post stuff มีวิธีที่ง่ายขึ้นและเฉพาะเจาะจงมากขึ้น haml? UPD เฉพาะ Haml …
155 ruby  haml 


8
เป็นสไตล์ที่ดีที่จะกลับมาทับทิมอย่างชัดเจนหรือไม่?
มาจากพื้นหลัง Python ที่มี "วิธีที่ถูกต้องที่จะทำ" (เป็นวิธี "Pythonic") เสมอเมื่อพูดถึงสไตล์ฉันสงสัยว่าทับทิมนั้นมีอยู่จริงหรือไม่ ฉันใช้แนวทางสไตล์ของฉันเอง แต่ฉันคิดว่าจะปล่อยซอร์สโค้ดของฉันและฉันต้องการให้เป็นไปตามกฎที่ไม่ได้เขียนไว้ซึ่งอาจมีอยู่ มันเป็น "The Ruby Way" หรือไม่ที่จะพิมพ์ออกมาreturnในวิธีการอย่างชัดเจน? ฉันเคยเห็นมันเสร็จแล้วทั้งที่มีและไม่มี แต่มีวิธีที่ถูกต้องหรือไม่ อาจมีเวลาที่เหมาะสมในการทำหรือไม่? ตัวอย่างเช่น: def some_func(arg1, arg2, etc) # Do some stuff... return value # <-- Is the 'return' needed here? end

14
do..end vs braces แบบหยิกสำหรับบล็อกใน Ruby
ฉันมีเพื่อนร่วมงานที่พยายามโน้มน้าวใจฉันว่าฉันไม่ควรใช้ do..end และใช้วงเล็บปีกกาเพื่อกำหนดบล็อกหลายเส้นในรูบี ฉันอยู่ในค่ายของเพียงใช้เครื่องหมายปีกกาสั้นสำหรับหนึ่งสมุทรและทำ .. ส่งทุกอย่างอื่น แต่ฉันคิดว่าฉันจะติดต่อกับชุมชนที่ใหญ่กว่าเพื่อรับการแก้ไข แล้วมันคืออะไรและทำไม? (ตัวอย่างของรหัส shoulda บางอย่าง) context do setup { do_some_setup() } should "do somthing" do # some more code... end end หรือ context { setup { do_some_setup() } should("do somthing") { # some more code... } } โดยส่วนตัวแล้วการดูที่ด้านบนตอบคำถามของฉัน แต่ฉันต้องการเปิดสิ่งนี้ให้กับชุมชนส่วนใหญ่

5
Array รวมถึงค่าใด ๆ จากอาเรย์อื่น?
วิธีที่มีประสิทธิภาพมากที่สุดในการทดสอบว่าอาร์เรย์มีองค์ประกอบใด ๆ จากอาร์เรย์ที่สองหรือไม่ สองตัวอย่างด้านล่างการพยายามตอบคำถามfoodsประกอบด้วยองค์ประกอบใด ๆ จากcheeses: cheeses = %w(chedder stilton brie mozzarella feta haloumi reblochon) foods = %w(pizza feta foods bread biscuits yoghurt bacon) puts cheeses.collect{|c| foods.include?(c)}.include?(true) puts (cheeses - foods).size < cheeses.size
155 ruby  arrays 

30
ไม่สามารถติดตั้ง RMagick 2.13.1 ไม่พบ MagickWand.h
เมื่อฉันพยายามติดตั้ง rmagick ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: Can't install RMagick 2.13.1. Can't find MagickWand.h. *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. ฉันใช้ Mac OSX 10.6.8, ruby ​​1.9.2p290, rvm 1.10.2 ใครช่วยฉันได้โปรดแก้ปัญหานี้ด้วย
154 ruby  install  rmagick 

4
วิธีการจัดเรียง Ruby Hash ตามค่าตัวเลข?
ฉันมีเคาน์เตอร์แฮชที่ฉันพยายามเรียงลำดับตามจำนวน ปัญหาที่ฉันพบคือฟังก์ชัน Hash.sort ที่เป็นค่าเริ่มต้นเรียงลำดับหมายเลขเช่นสตริงแทนที่จะเป็นขนาดตัวเลข เช่นได้รับกัญชา: metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 } ใช้รหัสนี้: metrics.sort {|a1,a2| a2[1]<=>a1[1]} จะส่งคืนอาร์เรย์ที่เรียงลำดับแล้ว: [ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10] แม้ว่า 745 จะเป็นตัวเลขที่มากกว่า 9 แต่ 9 จะปรากฏขึ้นเป็นลำดับแรกในรายการ เมื่อพยายามแสดงให้เห็นว่าใครมีค่าสูงสุดนี่ทำให้ชีวิตของฉันลำบาก :) แนวคิดใด ๆ เกี่ยวกับวิธีเรียงลำดับแฮช (หรืออาร์เรย์) ตามขนาดค่าตัวเลข ฉันขอขอบคุณความช่วยเหลือใด ๆ
154 ruby  hash 

7
ทำไม Ruby 1.9.2 จึงลบ“.” จาก LOAD_PATH และทางเลือกอื่นคืออะไร
เซ็ตการแก้ไขล่าสุดสำหรับ Ruby 1.9.2 จะไม่ทำให้ไดเรกทอรีปัจจุบัน.เป็นส่วนหนึ่งของคุณLOAD_PATHอีกต่อไป ฉันมีจำนวนของ Rakefiles ที่ไม่สำคัญซึ่งถือว่า.เป็นส่วนหนึ่งของLOAD_PATHสิ่งนี้ดังนั้นจึงทำให้พวกเขายากจน (พวกเขารายงานว่า "ไม่มีไฟล์ดังกล่าวที่จะโหลด" สำหรับทุกคำสั่งที่ต้องใช้ตามเส้นทางโครงการ) มีเหตุผลพิเศษสำหรับการทำเช่นนี้หรือไม่? สำหรับการแก้ไขการเพิ่ม$: << "."ทุกที่ทำงานได้ แต่ดูเหมือนว่าแฮ็คอย่างเหลือเชื่อและฉันไม่ต้องการทำเช่นนั้น วิธีใดที่จะทำให้ Rakefiles 1.9.2+ ของฉันใช้ร่วมกันได้
154 ruby  rake  require  load-path 

9
Ruby on Rails: วิธีการแสดงสตริงเป็น HTML?
ฉันมี @str = "<b>Hi</b>" และในมุมมองของฉัน erb: <%= @str %> สิ่งที่จะแสดงบนหน้าคือ<b>Hi</b>เมื่อสิ่งที่ฉันต้องการจริงๆคือสวัสดี วิธี "ตีความ" สตริงของทับทิมเป็นมาร์กอัป HTML คืออะไร แก้ไข : กรณีที่ @str = "<span class=\"classname\">hello</span>" ถ้าในมุมมองของฉันฉันทำ <%raw @str %> ซอร์สโค้ด HTML คือ<span class=\"classname\">hello</span> ที่สิ่งที่ฉันต้องการคือ<span class="classname">hello</span>(ไม่มีแบ็กสแลชที่หนีเครื่องหมายคำพูดคู่) อะไรคือวิธีที่ดีที่สุดในการ "unescape" เครื่องหมายคำพูดคู่นั้น

6
วิธีสลับคีย์และค่าในแฮช
ฉันจะสลับคีย์และค่าในแฮชได้อย่างไร ฉันมีแฮชต่อไปนี้: {:a=>:one, :b=>:two, :c=>:three} ที่ฉันต้องการเปลี่ยนเป็น: {:one=>:a, :two=>:b, :three=>:c} การใช้mapดูเหมือนจะค่อนข้างน่าเบื่อ มีวิธีแก้ปัญหาที่สั้นกว่านี้ไหม?
154 ruby  hashmap 

11
Ruby: ต้องการ vs require_relative - แนวปฏิบัติที่เหมาะสมที่สุดในการแก้ไขปัญหาการรันทั้งใน Ruby <1.9.2 และ> = 1.9.2
แนวปฏิบัติที่ดีที่สุดคืออะไรหากฉันต้องการrequireไฟล์สัมพัทธ์ใน Ruby และฉันต้องการให้มันทำงานทั้งใน 1.8.x และ&gt; = 1.9.2 ฉันเห็นตัวเลือกไม่กี่: แค่ทำ$LOAD_PATH &lt;&lt; '.'และลืมทุกสิ่ง ทำ $LOAD_PATH &lt;&lt; File.dirname(__FILE__) require './path/to/file' ตรวจสอบว่าRUBY_VERSION&lt;1.9.2 แล้วกำหนดrequire_relativeเป็นrequireใช้require_relativeทุกที่ที่จำเป็นหลังจากนั้น ตรวจสอบว่าrequire_relativeมีอยู่แล้วหากเป็นเช่นนั้นให้ลองดำเนินการต่อเหมือนในกรณีก่อนหน้า ใช้สิ่งก่อสร้างแปลก ๆ เช่น- อนิจจาพวกมันดูเหมือนจะไม่ทำงานใน Ruby 1.9 ตลอดไปเพราะตัวอย่างเช่น:require File.join(File.dirname(__FILE__), 'path/to/file')$ cat caller.rb require File.join(File.dirname(__FILE__), 'path/to/file') $ cat path/to/file.rb puts 'Some testing' $ ruby caller Some testing $ pwd /tmp $ ruby …
153 ruby  ruby-1.9  ruby-1.8 

17
วิธีแก้ปัญหาสคริปต์ Ruby [ปิด]
ปิด. คำถามนี้ต้องการรายละเอียดการแก้จุดบกพร่อง ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ ฉันคัดลอกรหัส Ruby ต่อไปนี้จากอินเทอร์เน็ตและทำการเปลี่ยนแปลงเล็กน้อย แต่ไม่ได้ผล ฉันจะทำอย่างไรเพื่อแก้ไขข้อบกพร่องของโปรแกรมด้วยตัวเอง
153 ruby  debugging 

6
ข้อผิดพลาด 'รวม' วิธีการที่ไม่ได้กำหนดฟิลด์ Rails Hidden
ฉันอยากทำอะไรแบบนี้กับราง นี่คือสิ่งที่ฉันมีอยู่ในราง: &lt;%= form_for @order do |f| %&gt; &lt;%= f.hidden_field :service, "test" %&gt; &lt;%= f.submit %&gt; &lt;% end %&gt; แต่ฉันได้รับข้อผิดพลาดนี้: undefined method `merge' for "test":String ฉันจะส่งผ่านค่าใน hidden_field ของฉันในรางได้อย่างไร


7
ศูนย์ชั้นนำในราง
ฉันมีเขตข้อมูลhrและminจำนวนเต็มทั้งสองในใบสมัครของฉัน สำหรับhrฟิลด์หากผู้ใช้ป้อน "1" ฉันต้องการให้ Rails pad อัตโนมัติเป็น "01" ก่อนที่จะบันทึกลงในฐานข้อมูล นอกจากนี้สำหรับminฟิลด์หากผู้ใช้ป้อน "0" ควรใส่เป็น "00" ฉันจะทำสิ่งนี้ได้อย่างไร

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