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

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

2
การกำหนดเส้นทาง Rails เพื่อจัดการกับหลายโดเมนในแอปพลิเคชันเดียว
ฉันไม่สามารถหาวิธีแก้ปัญหานี้ได้แม้จะมีคำถามที่คล้ายกันหลายข้อที่นี่และที่อื่น ๆ ดูเหมือนว่าคำถามนี้ยังไม่ได้รับคำตอบสำหรับ Rails 3 ดังนั้นต่อไปนี้: ฉันมีแอปพลิเคชันที่อนุญาตให้ผู้ใช้สร้างโดเมนย่อยของตนเองซึ่งมีอินสแตนซ์ของแอปพลิเคชันอยู่ ในขณะที่ทางรถไฟ 2 คุณได้ทำหน้าที่ดีที่สุดโดยใช้อัญมณีโดเมนย่อย-Fu, ในรุ่นที่ 3 มันเป็นอย่างมากที่เรียบง่ายตาม Railscast - http://railscasts.com/episodes/221-subdomains-in-rails-3 นั่นเป็นสิ่งที่ดี แต่ฉันก็ต้องการให้ตัวเลือกสำหรับผู้ใช้ในการเชื่อมโยงชื่อโดเมนของตนเองกับบัญชีของพวกเขา ดังนั้นแม้ว่าพวกเขาอาจมีhttp://userx.mydomain.comแต่ฉันก็อยากให้พวกเขาเลือกที่จะเชื่อมโยงhttp://userx.comด้วย ฉันพบข้อมูลอ้างอิงบางประการเกี่ยวกับการทำสิ่งนี้ใน Rails 2 แต่เทคนิคเหล่านั้นดูเหมือนจะไม่ได้ผลอีกต่อไป (โดยเฉพาะอย่างยิ่งอันนี้: https://feefighters.com/blog/hosting-multiple-domains-from-a-single-rails -app / ) ใครสามารถแนะนำวิธีใช้เส้นทางเพื่อยอมรับโดเมนที่กำหนดเองและส่งต่อไปยังคอนโทรลเลอร์เพื่อให้ฉันสามารถแสดงเนื้อหาที่เหมาะสมได้ อัปเดต : ตอนนี้ฉันได้รับคำตอบเกือบทั้งหมดแล้วขอบคุณการตอบสนองที่ทันท่วงทีของ Leonid และรูปลักษณ์ใหม่ของโค้ด ในที่สุดมันต้องการการเพิ่มเติมจากรหัสโดเมนย่อยที่มีอยู่ซึ่งฉันใช้อยู่ (จากโซลูชัน Railscast) จากนั้นจึงเพิ่มบิตให้กับ route.rb ฉันยังไปไม่ถึงที่นั่น แต่ฉันต้องการโพสต์สิ่งที่ฉันมีจนถึงตอนนี้ ใน lib / subdomain.rb: class Subdomain def self.matches?(request) request.subdomain.present? …

5
วิธีการที่ไม่ได้กำหนด `` เยี่ยมชม 'เมื่อใช้ RSpec และ Capybara ในราง
ฉันไม่สามารถให้ capybara ทำงานกับ rspec ได้ มันทำให้ฉันมีข้อผิดพลาดนี้: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> ฉันรู้ว่ามีโพสต์มากมายเกี่ยวกับเรื่องนี้ แต่ไม่มีวิธีแก้ปัญหาใดที่ใช้ได้ผลสำหรับฉัน ส่วนใหญ่เกี่ยวข้องกับสเปคที่ไม่อยู่ใน / spec / คุณสมบัติ - ที่ของฉันอยู่ ก่อนอื่นข้อผิดพลาด: $bundle exec rspec spec F Failures: 1) security signs users in Failure/Error: visit "/sessions/new" NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> # ./spec/features/security_spec.rb:4:in `(root)' Finished in 0.006 seconds …

2
spec / rail_helper.rb ต่างจาก spec / spec_helper.rb อย่างไร? ฉันต้องการหรือไม่
ฉันกำลังทำ Rails Tutorial เป็นครั้งที่สอง เมื่อใส่เข้าไปแล้ว rails generate integration_test static_pages ฉันได้รับspec/rails_helper.rbและspec/spec_helper.rbแทนที่จะเป็นเพียงspec/spec_helper.rb ตอนนี้เมื่อฉันทำการทดสอบพวกมันจะยาวกว่า ("verbose" มากขึ้น) และช้ากว่าครั้งที่แล้ว ฉันสงสัยว่าความแตกต่างระหว่างสองไฟล์คืออะไรและฉันทำอะไรผิดพลาด นอกจากนี้ยังมีวิธีกำจัดrails_helper.rbไฟล์โดยไม่ทำให้ทุกอย่างยุ่งเหยิง?

5
ฉันสามารถตั้งค่าการลบ Cascade ใน Rails ได้หรือไม่
ฉันรู้ว่านี่อาจเป็นบนอินเทอร์เน็ตที่ไหนสักแห่ง แต่ฉันไม่พบคำตอบที่นี่ใน Stackoverflow ดังนั้นฉันจึงคิดว่าฉันอาจเพิ่มฐานความรู้ที่นี่เล็กน้อย ฉันเป็นมือใหม่ของ Ruby and Rails แต่ บริษัท ของฉันกำลังได้รับการลงทุนในเรื่องนี้ดังนั้นฉันจึงพยายามทำความรู้จักกับมันในรายละเอียดเพิ่มเติม เป็นเรื่องยากสำหรับฉันที่จะเปลี่ยนความคิดในการออกแบบแอปพลิเคชันจาก "โมเดล" แทนที่จะเป็นจากฐานข้อมูลดังนั้นฉันจึงพยายามคิดว่างานออกแบบทั้งหมดที่ฉันทำแบบคลาสสิกจะทำอย่างไรในฐานข้อมูลใน โมเดลรางแทน ดังนั้นงานล่าสุดที่ฉันมอบให้ตัวเองคือการหาวิธีกำหนดค่าโมเดลฐานข้อมูล Rails เพื่อทำการลบแบบเรียงซ้อน? มีวิธีง่ายๆในการทำเช่นนี้หรือไม่? หรือฉันจะต้องเข้าไปใน MySql แล้วตั้งค่านี้?

8
การวัดและเวลามาตรฐานสำหรับวิธี Ruby
ฉันจะวัดเวลาที่ใช้โดยวิธีการและข้อความแต่ละรายการในวิธีนั้นใน Ruby ได้อย่างไร หากคุณเห็นวิธีการด้านล่างฉันต้องการวัดเวลาทั้งหมดที่ใช้โดยวิธีการและเวลาที่ใช้ในการเข้าถึงฐานข้อมูลและการเข้าถึงซ้ำ ฉันไม่ต้องการเขียน Benchmark.measure ก่อนทุกคำสั่ง ล่ามทับทิมให้ตะขอสำหรับทำสิ่งนี้แก่เราหรือไม่? def foo # code to access database # code to access redis. end

4
เหตุใดผู้ช่วย Rails ทั้งหมดจึงสามารถใช้ได้กับทุกมุมมองตลอดเวลา มีวิธีปิดการใช้งานนี้หรือไม่?
เหตุใดฉันจึงสามารถเข้าถึงวิธีการช่วยเหลือสำหรับคอนโทรลเลอร์หนึ่งตัวในมุมมองสำหรับคอนโทรลเลอร์อื่นได้ มีวิธีปิดการใช้งานโดยไม่ต้องแฮ็ก / แพทช์ Rails หรือไม่?

7
Rails ไม่ได้ถอดรหัส JSON จาก jQuery อย่างถูกต้อง (อาร์เรย์กลายเป็นแฮชที่มีคีย์จำนวนเต็ม)
ทุกครั้งที่ฉันต้องการโพสต์อาร์เรย์ของออบเจ็กต์ JSON ด้วย jQuery to Rails ฉันมีปัญหานี้ ถ้าฉันสตริงอาร์เรย์ฉันจะเห็นว่า jQuery ทำงานได้อย่างถูกต้อง: "shared_items"=>"[{\"entity_id\":\"253\",\"position\":1},{\"entity_id\":\"823\",\"position\":2}]" แต่ถ้าฉันส่งอาร์เรย์เป็นข้อมูลของการโทร AJAX ฉันจะได้รับ: "shared_items"=>{"0"=>{"entity_id"=>"253", "position"=>"1"}, "1"=>{"entity_id"=>"823", "position"=>"2"}} ในขณะที่ถ้าฉันส่งอาร์เรย์ธรรมดามันใช้งานได้: "shared_items"=>["entity_253"] เหตุใด Rails จึงเปลี่ยนอาร์เรย์เป็นแฮชแปลก ๆ เหตุผลเดียวที่อยู่ในใจคือ Rails ไม่สามารถเข้าใจเนื้อหาได้อย่างถูกต้องเนื่องจากไม่มีประเภทที่นี่ (มีวิธีตั้งค่าในการเรียก jQuery หรือไม่): Processing by SharedListsController#create as ขอขอบคุณ! อัปเดต: ฉันกำลังส่งข้อมูลเป็นอาร์เรย์ไม่ใช่สตริงและอาร์เรย์ถูกสร้างขึ้นแบบไดนามิกโดยใช้.push()ฟังก์ชัน พยายาม$.postและ$.ajaxผลลัพธ์เดียวกัน

6
วิธีระงับ Rails console / irb outputs
ฉันติดอยู่กับปัญหาแปลก ๆ ฉันกำลังทดสอบรายการ db ในเซิร์ฟเวอร์การผลิตของเราใน Rails Console ซึ่งคำสั่งเกือบทั้งหมดส่งผลให้มีบรรทัด o / p จำนวนมากเนื่องจากช่อง ssh กำลังถูกแขวนคอ :( มีวิธีระงับหน้าจอคอนโซล / irb หรือไม่? ขอบคุณ

9
จะเปลี่ยนการเชื่อมโยง IP เริ่มต้นของเซิร์ฟเวอร์การพัฒนา Rails 4.2 ได้อย่างไร
หลังจากอัปเกรดเป็นแอปพลิเครางทีมงานของเรา 4.2 เป็นเอกสารเผยแพร่ดังกล่าวเริ่มต้นของ IP rails serverกระหม่อมจะเปลี่ยนไปจากlocalhost0.0.0.0 เราพัฒนาด้วย Vagrant และต้องการให้เซิร์ฟเวอร์การพัฒนาสามารถเข้าถึงได้โดยตรงจากเบราว์เซอร์บนเครื่องโฮสต์ แทนที่จะพิมพ์rails s -b 0.0.0.0ทุกครั้งจากนี้ไปฉันสงสัยว่าจะมีวิธีแก้ปัญหาที่หรูหรากว่านี้หรือไม่เพื่อให้เรายังคงสามารถใช้ sth ได้อย่างง่ายดายเหมือนrails sเริ่มเซิร์ฟเวอร์ บางที: ไฟล์ config rails sอ่านโดยที่ฉันสามารถแก้ไขค่า default binding ip (โดยไม่ต้องใช้-c) พอร์ตไปข้างหน้ากับคนจรจัด (พยายาม แต่ล้มเหลวดูปัญหาที่พบด้านล่าง) แพทช์ลิงไปยังชั้นวางที่เปลี่ยน ip การโยงเริ่มต้น เป้าหมายที่แท้จริงเบื้องหลังนี้คือฉันต้องการให้การอัปเกรดเป็นไปอย่างราบรื่นในหมู่ทีมของเราหลีกเลี่ยงข้อผิดพลาดที่ผู้คนจะต้องรีสตาร์ทเซิร์ฟเวอร์รางตลอดเวลาเนื่องจาก-b 0.0.0.0ส่วนที่ขาดหายไป ฉันพยายามส่งต่อพอร์ตคนจรจัด แต่ก็ยังได้รับConnection Refusedเมื่อฉันไปlocalhost:3000ที่เครื่องโฮสต์ สองบรรทัดการกำหนดค่าที่ฉันลองคือ: config.vm.network "forwarded_port", guest: 3000, host: 3000 config.vm.network "forwarded_port", guest: 3000, guest_ip: '127.0.0.1', host: …

3
วิธีเรียกใช้ไฟล์. rb จาก IRB
ฉันเริ่มต้นด้วย Ruby on Rails ฉันกำลังอ่านบทช่วยสอนที่มันบอกว่าฉันต้องเรียกใช้ไฟล์. rb จาก IRB และนั่นจะสร้างไฟล์. xml ในไดเร็กทอรีปัจจุบันของฉัน คำถามของฉันคือฉันจะเรียกใช้ไฟล์. rb ใน IRB ได้อย่างไร และฉันต้องอยู่ในไดเร็กทอรีที่ไฟล์. rb นี้มีชีวิตอยู่เมื่อฉันเรียกใช้ใน IRB หรือไม่ ฉันลองทำสิ่งต่อไปนี้: เพียงพิมพ์irbบนบรรทัดคำสั่งในไดเร็กทอรีของไฟล์ นั่นเป็นการเริ่มเซสชัน IRB เท่าที่ฉันเข้าใจ จากนั้นฉันพิมพ์irb "filename.rb"สิ่งที่ผ่านไป แต่ไม่ได้สร้างอะไรในไดเร็กทอรีปัจจุบัน แต่อย่างน้อยมันก็ไม่ให้ข้อผิดพลาดใด ๆ ฉันยังได้ลองสิ่งอื่น ๆ อีกมากมายที่ทำให้ฉันมีข้อผิดพลาด ดังนั้นฉันจึงไม่คิดว่าจะแก้ปัญหานี้ได้ด้วยตัวเองและ googling เรื่องนี้ก็ไม่ได้ช่วยอะไรเลย ฉันวิ่ง Leopard

3
วิธีการแทนที่ X-Frame-Options สำหรับคอนโทรลเลอร์หรือการดำเนินการใน Rails 4
ดูเหมือนว่า Rails 4 จะกำหนดค่าเริ่มต้นSAMEORIGINสำหรับX-Frame-Optionsส่วนหัวการตอบกลับ HTTP สิ่งนี้ยอดเยี่ยมสำหรับการรักษาความปลอดภัย แต่ไม่อนุญาตให้บางส่วนของแอปของคุณพร้อมใช้งานในiframeโดเมนอื่น คุณสามารถแทนที่ค่าของX-Frame-Optionsทั่วโลกโดยใช้การconfig.action_dispatch.default_headersตั้งค่า: config.action_dispatch.default_headers['X-Frame-Options'] = "ALLOW-FROM https://apps.facebook.com" แต่คุณจะแทนที่มันได้อย่างไรสำหรับคอนโทรลเลอร์หรือการดำเนินการเดียว?

7
i18n พหูพจน์
ฉันต้องการแปลสตริงที่เป็นพหูพจน์ใน i18n ในราง สตริงสามารถ: You have 2 kids หรือ You have 1 kid ฉันรู้ว่าฉันสามารถใช้เมธอดตัวช่วยพหูพจน์ได้ แต่ฉันต้องการฝังสิ่งนี้ในการแปล i18n เพื่อที่ฉันจะได้ไม่ต้องวุ่นวายกับมุมมองของฉันในอนาคต ฉันอ่านว่า:countมีการใช้คำแปลของพหูพจน์ แต่ฉันไม่พบแหล่งข้อมูลที่แท้จริงเกี่ยวกับวิธีการนำไปใช้ สังเกตว่าฉันรู้ว่าฉันสามารถส่งผ่านตัวแปรในสตริงการแปลได้ ฉันลองทำสิ่งต่างๆเช่น: <%= t 'misc.kids', :kids_num => pluralize(1, 'kid') %> ซึ่งใช้งานได้ดี แต่มีปัญหาพื้นฐานของแนวคิดเดียวกัน ฉันต้องการระบุสตริง'kid'ในตัวช่วยพหูพจน์ ฉันไม่อยากทำอย่างนั้นเพราะมันจะนำไปสู่การมองเห็นปัญหาในอนาคต แต่ฉันต้องการเก็บทุกอย่างไว้ในคำแปลและไม่มีอะไรอยู่ในมุมมอง ฉันจะทำเช่นนั้นได้อย่างไร?

6
ทับทิมแปลงชื่อคลาสในสตริงเป็นคลาสจริง
ฉันจะเรียกคลาสจากสตริงที่มีชื่อคลาสนั้นอยู่ข้างในได้อย่างไร (ฉันเดาว่าฉันสามารถทำกรณี / เมื่อ แต่มันดูน่าเกลียด) เหตุผลที่ฉันถามคือเพราะฉันใช้acts_as_commentableปลั๊กอินและอื่น ๆ และสิ่งเหล่านี้เก็บ commentable_type เป็นคอลัมน์ ฉันต้องการที่จะเรียกชั้นเรียนที่มีความคิดเห็นเป็นพิเศษเพื่อทำสิ่งfind(commentable_id)นั้น ขอบคุณ.

12
Webrick ตอบสนองช้ามาก จะเร่งความเร็วได้อย่างไร?
ฉันมีแอปพลิเคชัน Rails ที่ฉันใช้งานบนเซิร์ฟเวอร์ของฉัน เมื่อฉันไปที่เดสก์ท็อประยะไกลและพยายามโหลดแอปพลิเคชันเซิร์ฟเวอร์จะใช้เวลา 3-4 นาทีในการตอบสนองด้วยหน้า HTML แบบธรรมดา อย่างไรก็ตามเมื่อฉันโหลดเพจในเครื่องบนเซิร์ฟเวอร์หน้านั้นจะปรากฏขึ้นภายในไม่กี่วินาที ฉันลอง ping เซิร์ฟเวอร์จากเดสก์ท็อประยะไกลของฉันและ ping จะประสบความสำเร็จในระยะเวลาที่เหมาะสม ดูเหมือนว่าทั้งหมดนี้จะเริ่มต้นขึ้นหลังจากที่ฉันติดตั้งไคลเอนต์พื้นฐานและ SQLPLUS ของ Oracle ฉันควรสงสัย Oracle หรือไม่ มีใครมีประสบการณ์คล้าย ๆ นี้บ้าง?

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

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