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

Ruby on Rails เป็นโอเพ่นซอร์สเฟรมเวิร์กแบบเต็มเว็บแอ็พพลิเคชันที่เขียนใน Ruby มันเป็นไปตามรูปแบบกรอบ MVC ที่เป็นที่นิยมและเป็นที่รู้จักกันดีในเรื่องแนวทาง

30
วิธีแก้ปัญหาข้อผิดพลาด“ การติดตั้งทับทิมหายไปจากโรคจิต”
ฉันใช้ rvm เพื่อติดตั้ง ruby ​​1.9.3 แม้ว่ามันจะถูกติดตั้งสำเร็จ แต่ก็บ่นเกี่ยวกับ libyaml และตอนนี้ทุกครั้งที่ฉันต้องการติดตั้งอัญมณี (พูดทางรถไฟ) คำเตือนนี้จะปรากฏขึ้น: It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby. ฉันใช้ Mac os X 10.7 (Lion)
158 ruby-on-rails  ruby  macos  rvm 


7
EOFError: ถึงจุดสิ้นสุดของไฟล์ถึงปัญหากับ Net :: HTTP
ฉันใช้ ruby-1.8.7-p302 / Rails 2.3.11 ฉันกำลังพยายามใช้ FQL (Facebook API) เพื่อรับสถิติสำหรับลิงก์ นี่คือรหัสของฉัน: def stats(fb_post_url) url = BASE_URI + "?query=#{URI.encode("select like_count from link_stat where url=\"#{fb_post_url}\"")}" parsed_url = URI.parse(url) http = Net::HTTP.new(parsed_url.host, parsed_url.port) request = Net::HTTP::Get.new(parsed_url.request_uri) response = http.request(request) response.inspect end และนี่คือข้อผิดพลาด: EOFError: end of file reached from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `sysread' from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `rbuf_fill' …

9
จะบันทึกบางอย่างใน Rails ในไฟล์บันทึกอิสระได้อย่างไร?
ใน Rails ฉันต้องการบันทึกข้อมูลบางอย่างในไฟล์บันทึกที่ต่างออกไปและไม่ใช่มาตรฐาน development.log หรือ production.log ฉันต้องการบันทึกการทำงานนี้จากคลาสโมเดล

19
การติดตั้ง Nokogiri ล้มเหลว -libxml2 ขาดหายไป
ฉันพยายามแก้ไขปัญหาการติดตั้ง Nokogiri เสมอโดยทำตามเอกสารในบทแนะนำ" การติดตั้ง Nokogiri " แต่คราวนี้แม้หลังจากติดตั้งการอ้างอิงทั้งหมดแล้ว Nokogiri ยังไม่ได้รับการติดตั้ง ฉันได้รับข้อผิดพลาดต่อไปนี้: libxml2 is missing. please visit <http://nokogiri.org/tutorials/installing_nokogiri.html> ฉันพยายามติดตั้งโดยระบุไดเรกทอรี libxml2 และ libxslt: sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/ แต่มันกลับข้อผิดพลาดเดียวกัน ฉันติดตามบทความ Stack Overflow อื่น ๆ ที่เกี่ยวข้องทั้งหมดและไม่มีใครช่วยเลย ไม่มีใครมีทางออกหรือไม่?

11
วิธีที่ดีที่สุดในการสร้างโทเค็นที่ไม่เหมือนใครใน Rails?
นี่คือสิ่งที่ฉันใช้ โทเค็นไม่จำเป็นต้องได้ยินเพื่อคาดเดามันเป็นเหมือนตัวระบุ URL แบบสั้นมากกว่าสิ่งอื่นใดและฉันต้องการให้มันสั้น ฉันได้ติดตามตัวอย่างที่ฉันพบทางออนไลน์และในกรณีที่มีการปะทะกันฉันคิดว่ารหัสด้านล่างจะสร้างโทเค็นใหม่ แต่ฉันไม่แน่ใจจริง ๆ ฉันอยากรู้ว่าจะเห็นคำแนะนำที่ดีกว่านี้ได้อย่างไรเนื่องจากมันรู้สึกหยาบเล็กน้อยรอบ ๆ ขอบ def self.create_token random_number = SecureRandom.hex(3) "1X#{random_number}" while Tracker.find_by_token("1X#{random_number}") != nil random_number = SecureRandom.hex(3) "1X#{random_number}" end "1X#{random_number}" end คอลัมน์ฐานข้อมูลของฉันสำหรับโทเค็นเป็นดัชนีที่ไม่ซ้ำกันและฉันยังใช้validates_uniqueness_of :tokenกับโมเดล แต่เพราะสิ่งเหล่านี้ถูกสร้างขึ้นในแบทช์โดยอัตโนมัติตามการกระทำของผู้ใช้ในแอป (พวกเขาสั่งซื้อและซื้อโทเค็นเป็นหลัก) เป็นไปไม่ได้ที่แอพจะมีข้อผิดพลาดเกิดขึ้น ฉันก็สามารถเดาได้ว่าเพื่อลดโอกาสในการชนเพิ่มสตริงใหม่ในตอนท้ายสิ่งที่สร้างขึ้นตามเวลาหรืออะไรทำนองนั้น แต่ฉันไม่ต้องการให้โทเค็นยาวเกินไป

7
Rails 3.1 และ Image Image
ฉันใส่รูปภาพทั้งหมดของฉันสำหรับธีมผู้ดูแลระบบของฉันในโฟลเดอร์ทรัพย์สินภายในโฟลเดอร์ชื่อ admin จากนั้นฉันจะเชื่อมโยงกับมันเหมือนปกติคือ # Ruby image_tag "admin/file.jpg" ..... #CSS .logo{ background:url('/assets/images/admin/logo.png'); FYI เพียงเพื่อการทดสอบฉันไม่ได้ใช้แท็ก asset_path เพียงเพราะฉันยังไม่ได้รวบรวมเนื้อหาของฉัน โอเคดีจนกระทั่งฉันตัดสินใจอัปเดตรูปภาพ ฉันเปลี่ยนสีบางส่วน แต่เมื่อทำการโหลดภาพสไตล์ใหม่จะไม่แสดง หากฉันดูภาพโดยตรงในเบราว์เซอร์มันยังคงแสดงภาพเก่า ไปอีกขั้นหนึ่งฉันทำลายโฟลเดอร์ภาพผู้ดูแลระบบ แต่มันก็ไม่มีอะไรแตกสลายภาพทั้งหมดยังคงแสดงอยู่ และใช่ฉันได้ล้างแคชและได้ลองกับเบราว์เซอร์หลายตัว มีการจัดรูปแบบแคชบางอย่างเกิดขึ้นหรือไม่ นี่เป็นเพียงการพัฒนาท้องถิ่นโดยใช้ธารเพื่อให้บริการหน้าเว็บ แม้แต่การทำลายโฟลเดอร์รูปภาพทั้งหมด แต่รูปภาพก็ยังคงแสดงอยู่ ฉันพลาดอะไรไปรึเปล่า?

10
Rails Model, View, Controller และ Helper: เกิดอะไรขึ้น?
ใน Ruby on Rails Development (หรือ MVC โดยทั่วไป) ฉันควรทำตามกฎอย่างรวดเร็วว่าจะวางตรรกะไว้ที่ใด กรุณาตอบด้วยการยืนยัน - ด้วยอย่าใส่สิ่งนี้ไว้ที่นี่แทนที่จะทำอย่างนั้น

8
Rails 2.3 สไตล์ปลั๊กอินและคำเตือนการเลิกใช้งานใน Heroku
ฉันกำลังอัพเกรดเป็น Rails 3.2 และการรัน rake db: migrate ทำให้ฉันมีข้อผิดพลาดหลายอย่างของแบบฟอร์ม: คำเตือนการเลิกใช้งาน: คุณมีปลั๊กอิน 2.3 สไตล์ในผู้ขาย / ปลั๊กอิน! การสนับสนุนสำหรับปลั๊กอินเหล่านี้จะถูกลบใน Rails 4.0 ย้ายออกและรวมเข้ากับ Gemfile ของคุณหรือพับเข้าไปในแอปของคุณเป็น lib / myplugin / * และ config / initializers / myplugin.rb ดูบันทึกประจำรุ่นสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released (เรียกจากที่ / app / Rakefile: 7) สิ่งที่น่างงคือสิ่งที่vendor/pluginsไดเรกทอรีของฉันว่างเปล่า - มีอีกไดเรกทอรีไดเรกทอรีที่อ้างอิง?

9
การแทนที่ Rails default_scope
ถ้าฉันมีรูปแบบ ActiveRecord :: Base พร้อมขอบเขตเริ่มต้น: class Foo < ActiveRecord::Base default_scope :conditions => ["bar = ?",bar] end มีวิธีใดบ้างที่จะทำFoo.find โดยไม่ใช้default_scopeเงื่อนไขหรือไม่? คุณสามารถแทนที่ขอบเขตเริ่มต้นได้หรือไม่? ผมจะมีความคิดว่าการใช้เริ่มต้น 'ในชื่อจะชี้ให้เห็นว่ามันเป็น overridable มิฉะนั้นก็จะถูกเรียกว่าสิ่งที่ต้องการglobal_scopeใช่มั้ย?

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... } } โดยส่วนตัวแล้วการดูที่ด้านบนตอบคำถามของฉัน แต่ฉันต้องการเปิดสิ่งนี้ให้กับชุมชนส่วนใหญ่

4
เปลี่ยนชื่อตารางเป็นราง
ฉันต้องการเปลี่ยนชื่อตาราง ... (ตารางใด ๆ ) ฉันลองรหัสบรรทัดนี้: ActiveRecord::ConnectionAdapters::SchemaStatements.rename_table(old_name, new_name) นี่คือสิ่งที่แปลก ฉันรู้ว่าฉันทำให้มันทำงานครั้งแรก แต่ตอนนี้ฉันได้รับข้อผิดพลาดนี้: วิธีที่ไม่ได้กำหนด `rename_table 'สำหรับ ActiveRecord :: ConnectionAdapters :: SchemaStatements: โมดูล มีสิ่งที่ฉันต้องตั้งค่า?

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" เครื่องหมายคำพูดคู่นั้น

12
Rails Observer Alternatives สำหรับ 4.0
เมื่อผู้สังเกตการณ์ถูกลบอย่างเป็นทางการจาก Rails 4.0ฉันอยากรู้ว่านักพัฒนาคนอื่นกำลังใช้อะไรอยู่ (นอกเหนือจากการใช้อัญมณีที่ถูกแยกออกมา) ในขณะที่ผู้สังเกตการณ์ถูกทารุณกรรมและอาจกลายเป็นเรื่องไม่สะดวกได้อย่างง่ายดายในบางครั้งมีกรณีการใช้งานมากมายนอกเหนือจากการล้างแคชซึ่งเป็นประโยชน์ ยกตัวอย่างเช่นแอปพลิเคชันที่ต้องการติดตามการเปลี่ยนแปลงของโมเดล ผู้สังเกตการณ์สามารถเฝ้าดูการเปลี่ยนแปลงในโมเดล A และบันทึกการเปลี่ยนแปลงเหล่านั้นด้วย Model B ในฐานข้อมูลได้อย่างง่ายดาย หากคุณต้องการดูการเปลี่ยนแปลงในหลายรุ่นผู้สังเกตการณ์คนเดียวก็สามารถจัดการกับมันได้ ใน Rails 4 ฉันอยากรู้ว่านักพัฒนาคนอื่นกำลังใช้กลยุทธ์อะไรในตำแหน่ง Observers เพื่อสร้างฟังก์ชั่นนั้น โดยส่วนตัวแล้วฉันโน้มตัวไปสู่การใช้งาน "ตัวควบคุมไขมัน" ซึ่งการเปลี่ยนแปลงเหล่านี้ถูกติดตามในวิธีการสร้าง / อัพเดต / ลบของตัวควบคุมแต่ละรุ่น ในขณะที่มันขยายพฤติกรรมของแต่ละคอนโทรลเลอร์เล็กน้อย แต่ช่วยในการอ่านและทำความเข้าใจเนื่องจากรหัสทั้งหมดอยู่ในที่เดียว ข้อเสียคือตอนนี้มีรหัสที่คล้ายกันมากกระจายไปทั่วตัวควบคุมหลายตัว การแยกรหัสนั้นออกเป็นวิธีผู้ช่วยเป็นตัวเลือก แต่คุณยังคงทิ้งการเรียกใช้วิธีการเหล่านั้นทิ้งไว้ทุกที่ ไม่ใช่จุดจบของโลก แต่ก็ไม่ได้อยู่ในจิตวิญญาณของ "ผู้ควบคุมผอม" เช่นกัน ActiveRecord callbacks เป็นอีกทางเลือกที่เป็นไปได้แม้ว่าจะมีคนที่ฉันไม่ชอบเป็นการส่วนตัวเพราะมันมีสองรุ่นที่แตกต่างกันมากเกินไปในความคิดของฉัน ดังนั้นใน Rails 4 โลกที่ไม่มีผู้สังเกตการณ์ถ้าคุณต้องสร้างบันทึกใหม่หลังจากสร้าง / อัปเดต / ทำลายบันทึกใหม่อีกชุดหนึ่งคุณจะใช้รูปแบบการออกแบบแบบใด ตัวควบคุมไขมันการเรียกกลับ ActiveRecord หรืออย่างอื่นอย่างสิ้นเชิง? ขอบคุณ.


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