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

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

18
ไม่สามารถโหลดไฟล์ดังกล่าวได้ - sqlite3 / sqlite3_native (LoadError) บนทับทิมบนราง
เมื่อฉันพยายามตั้งค่าการติดตั้งพื้นฐานและการเริ่มต้นเซิร์ฟเวอร์โดยใช้ Rails 4.0.0 บน Ruby 2.0.0 ฉันพบข้อความแสดงข้อผิดพลาดต่อไปนี้ /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError) from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `rescue in <top (required)>' from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:2:in `<top (required)>' from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require' from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require' from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each' from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require' from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each' from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require' …

12
ทางออกที่ดีที่สุดสำหรับการรับรองความถูกต้องใน Ruby on Rails [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันกำลังมองหาโซลูชันที่สร้างไว้ล่วงหน้าซึ่งสามารถใช้ในแอปพลิเคชัน RoR ของฉันได้ ฉันกำลังมองหาสิ่งที่คล้ายกับการรับรองความถูกต้องของ ASP.NET Forms ที่ให้การตรวจสอบอีเมลการควบคุมการลงทะเบียนและอนุญาตให้ผู้ใช้รีเซ็ตรหัสผ่าน โอ้ใช่และช่วยให้ฉันดึงผู้ใช้ที่ล็อกอินเข้าสู่แอปพลิเคชันได้อย่างง่ายดาย ฉันเริ่มมองหางานที่เขียนไปแล้ว แต่ฉันพบว่ามันสับสนจริงๆ ฉันได้ดูที่ LoginGenerator, RestfulAuthentication, SaltedLoginGenerator แต่ดูเหมือนจะไม่มีที่เดียวที่มีบทช่วยสอนที่ยอดเยี่ยมหรือมีการเปรียบเทียบ หากมีไซต์ที่ฉันยังไม่เคยค้นพบหรือหากมีมาตรฐานโดยพฤตินัยที่คนส่วนใหญ่ใช้ฉันขอขอบคุณสำหรับความช่วยเหลือ

8
เค้าโครงที่แตกต่างกันสำหรับการดำเนินการ sign_in ในประดิษฐ์
ฉันกำลังพยายามใช้เค้าโครงอื่น / กำหนดเองชื่อ "ประดิษฐ์" สำหรับการดำเนินการ sign_in ฉันพบหน้านี้ในวิกิประดิษฐ์และตัวอย่างที่สองบอกว่าคุณสามารถทำได้ต่อการกระทำ (ในกรณีนี้คือsign_inการกระทำ) แต่ไม่แสดงตัวอย่างของการทำเช่นนั้น มีคนใน IRC บอกฉันว่าฉันสามารถลองสิ่งนี้: class ApplicationController < ActionController::Base protect_from_forgery layout :layout_by_resource def layout_by_resource if devise_controller? && resource_name == :user && action_name == 'sign_in' "devise" else "application" end end end แต่ดูเหมือนจะไม่ทำงานเนื่องจากยังคงโหลดเค้าโครงแอปพลิเคชันเริ่มต้น ฉันอยากจะขอบคุณความช่วยเหลือใด ๆ.

5
before_filter พร้อมพารามิเตอร์
ฉันมีวิธีที่ทำสิ่งนี้: before_filter :authenticate_rights, :only => [:show] def authenticate_rights project = Project.find(params[:id]) redirect_to signin_path unless project.hidden end ฉันต้องการใช้วิธีนี้ในตัวควบคุมอื่น ๆ ด้วยดังนั้นฉันจึงคัดลอกเมธอดไปยังตัวช่วยที่รวมอยู่ใน application_controller ปัญหาคือในคอนโทรลเลอร์บางตัว id ของโปรเจ็กต์ไม่ใช่:idสัญลักษณ์ แต่เป็น fe :project_id(และยังมี:idอยู่ (สำหรับรุ่นอื่น) คุณจะแก้ปัญหานี้อย่างไร? มีตัวเลือกในการเพิ่มพารามิเตอร์ให้กับการกระทำ before_filter (เพื่อส่งผ่านพารามิเตอร์ที่ถูกต้อง) หรือไม่

3
วิธีแก้ไขข้อความเตือนของ Rails ด้วย Ruby 2.7.0
ไม่มีใครแก้ไขปัญหานี้ด้วยRuby 2.7.0? ผมใช้rbenvและติดตั้งทับทิม v2.7.0 Rails v6.0.2.1แล้วสร้างโครงการทางรถไฟโดยใช้ ปัจจุบันโดยเรียกใช้หนึ่งใน rails s rails s -u puma rails s -u webrick เซิร์ฟเวอร์ทำงานอยู่และมีการให้บริการเว็บไซต์ แต่ในConsoleบันทึกฉันเห็นข้อความเตือนสองข้อความ: local:~/rcode/rb27$ rails s => Booting Puma => Rails 6.0.2.1 application starting in development => Run `rails server --help` for more startup options .rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/actionpack-6.0.2.1/lib/action_dispatch/middleware/stack.rb:37: warning: Using the last argument as keyword parameters …

4
ทำไม Rails จึงไม่สามารถบู๊ตด้วย“ คาดว่าจะพบไฟล์ Manifest ใน 'แอพ / สินทรัพย์ / config / manifest.js' (Sprockets :: Railtie :: ManifestNeededError)?
หลังจากbundle updateแอพ Rails ของฉันไม่สามารถบู๊ตได้: Expected to find a manifest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)

4
วิธีที่ไม่ได้กำหนด `loading_keys 'กำลังโหลดเว็บ Sidekiq
หลังจากอัปเดตพลอยแล้วจะไม่โหลดเว็บไซต์ sidekiq ที่ให้ข้อผิดพลาดดังต่อไปนี้: NoMethodError (undefined method `transform_keys' for <ActionDispatch::Request::Session:0x00005568df2a8710>): อัญมณีที่ได้รับการอัพเดต ได้แก่ : selenium-webdriver 3.142.7 rack-protection 2.0.8.1 mime-types 3.3.1 mini_magick 4.10.1 image_processing 1.10.3 groupdate 4.3.0 friendly_id 5.3.0 faraday 0.17.3 http 4.3.0 public_suffix 4.0.3 rack 2.1.1 crass 1.0.6 i18n 1.7.1 minitest 5.14.0 รุ่น ruby: ruby ​​2.6.0p0 (2018-12-25 รุ่นที่แก้ไข 66547) [x86_64-linux] ข้อความแสดงข้อผิดพลาดแบบเต็ม

2
อัปเดตใบรับรอง Amazon RDS SSL / TLS - Elastic Beanstalk
AWS เพิ่งประกาศความต้องการ: อัปเดตใบรับรอง Amazon RDS SSL / TLS ของคุณภายในวันที่ 31 ตุลาคม 2019 ฉันมีแอปพลิเคชั่น Rails ที่โฮสต์กับตัวปรับสมดุลโหลดยืดหยุ่น Beanstalk แบบคลาสสิคซึ่งเชื่อมต่อกับ Postgres DB โดยใช้ RDS ขั้นตอนที่จำเป็นตาม Amazon คือ: ดาวน์โหลดใบรับรอง SSL / TLS ใหม่จากการใช้ SSL / TLS เพื่อเข้ารหัสการเชื่อมต่อไปยังอินสแตนซ์ฐานข้อมูล อัพเดตแอ็พพลิเคชันฐานข้อมูลของคุณเพื่อใช้ใบรับรอง SSL / TLS ใหม่ แก้ไขอินสแตนซ์ DB เพื่อเปลี่ยน CA จาก rds-ca-2015 เป็น rds-ca-2019 ( https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html ) เนื่องจากฉันตั้งตัวโหลดบาลานซ์ของฉันไว้เช่นนี้ …

4
วิธีที่ไม่ได้กำหนด `plain_specs 'สำหรับ # <Bundler :: RubygemsIntegration: 0x00005633f09a9000> (NoMethodError)
ฉันได้ดึงโครงการที่ฉันมีในงานของฉันและเมื่อฉันพยายามเรียกใช้rails db:migrateเทอร์มินัลขอให้ติดตั้ง "Bundler 2" ดังนั้นฉันจึงทำ ตอนนี้เมื่อฉันพยายามทำrails db:migrateฉันมีข้อผิดพลาดดังต่อไปนี้: /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:84:in `setup': undefined method `plain_specs' for #&lt;Bundler::RubygemsIntegration:0x00005633f09a9000&gt; (NoMethodError) from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:124:in `check' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems-bundler/noexec.rb:131:in `&lt;top (required)&gt;' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:168:in `require' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:168:in `rescue in require' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:178:in `require' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/rubygems-bundler-1.4.5/lib/rubygems_executable_plugin.rb:4:in `block in &lt;top (required)&gt;' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:50:in `block in run' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:49:in `each' from /home/acartesc/.rvm/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0/gems/executable-hooks-1.5.0/lib/executable-hooks/hooks.rb:49:in `run' …

3
เป็นไปได้ไหมที่จะมีพูลการเชื่อมต่อฐานข้อมูลหลายตัวในรางเพื่อสลับไปมา?
พื้นหลังเล็กน้อย ฉันใช้พลอยอพาร์ทเม้นท์เพื่อเรียกใช้แอพหลายผู้เช่ามาหลายปีแล้ว ตอนนี้เมื่อเร็ว ๆ นี้ความต้องการในการขยายฐานข้อมูลออกไปยังโฮสต์ที่แยกต่างหากได้มาถึงแล้วเซิร์ฟเวอร์ db ก็ไม่สามารถติดตามได้อีกต่อไป (ทั้งการอ่านและการเขียนมีมากเกินไป) - และใช่ฉันปรับขนาดฮาร์ดแวร์ให้สูงสุด ฮาร์ดแวร์ 64 คอร์, 12 Nvm-e ไดรฟ์ในการโจมตี 10, 384Gb ram เป็นต้น) ฉันกำลังพิจารณาที่จะทำสิ่งนี้ต่อผู้เช่า (1 tenant = 1 การเชื่อมต่อฐานข้อมูล config / pool) เพราะนั่นจะเป็นวิธีที่ "ง่าย" และมีประสิทธิภาพในการเพิ่มnumber-of-tenantsความจุได้มากขึ้นโดยไม่ต้องเปลี่ยนรหัสแอปพลิเคชัน ตอนนี้ฉันกำลังเรียกใช้ rails 4.2 atm. และอีกไม่นานจะอัพเกรดเป็น 5.2 ฉันเห็นว่า Rails 6 เพิ่มการสนับสนุนสำหรับคำจำกัดความการเชื่อมต่อต่อโมเดลอย่างไรก็ตามนั่นไม่ใช่สิ่งที่ฉันต้องการจริงๆเพราะฉันมี schema ฐานข้อมูลแบบมิเรอร์ทั้งหมดสำหรับผู้เช่า 20 คนของฉัน โดยทั่วไปฉันจะสลับ "ฐานข้อมูล" ต่อคำขอ (เป็นมิดเดิลแวร์) …

1
การใช้โลกาภิวัตน์เป็นอัญมณีวิธีการเปลี่ยนตำแหน่งที่ตั้งสำหรับอินพุตเท่านั้นและไม่ใช่ทั้งหน้า?
บริบท:สำหรับแอป Ruby on Rails สำหรับการเช่าจักรยานฉันใช้ gem globalize เพื่อจัดการกับการป้อนข้อมูล:descriptionในภาษาต่างๆ รัฐ Curent:การดำเนิน globalize ทำงานขึ้นอยู่กับสถานที่ของฉันฉันสามารถที่จะเก็บdescriptionในภาษาที่เฉพาะเจาะจง การป้อนข้อมูลสำหรับ:descriptionจัดการกับบนพื้นฐานของสถานที่เกิดเหตุของหน้าเว็บทั้งหมด ซึ่งหมายความว่าทุกอย่างในหน้านี้จะต้องเปลี่ยนเป็นภาษาเพื่อเก็บไว้:descriptionในภาษาที่ถูกต้อง หรือฉันสามารถแสดงสถานที่ที่มีอยู่ทั้งหมดและแสดงdescriptionให้แต่ละสถานที่ได้ (โปรดดูรหัสความคิดเห็นด้านล่าง) คำถาม:ฉันกำลังค้นหาวิธีที่จะให้ผู้ใช้เลือกภาษา:descriptionเพียงอย่างเดียวจากนั้นบันทึก:descriptionเป็นภาษาที่ถูกต้องโดยไม่ต้องเปลี่ยนภาษาของหน้าเว็บทั้งหมด รหัส แบบฟอร์ม &lt;div class="row"&gt; &lt;%# I18n.available_locales.each do |locale| %&gt; &lt;!-- &lt;h1&gt;&lt;%#= locale %&gt;&lt;/h1&gt; --&gt; &lt;%= f.globalize_fields_for locale do |ff| %&gt; &lt;div class="col-10"&gt; &lt;div class="form-group"&gt; &lt;label class="form-control-label text required" for="accommodation_category_description"&gt;Description&lt;/label&gt; &lt;div&gt;&lt;%= ff.text_area :description, :rows …

1
จะกำหนดค่า Jasmine ใน Rails 6 ได้อย่างไร?
ฉันจะกำหนดค่าจัสมินได้อย่างไรในสภาพแวดล้อม Rails 6 (ที่ Webpack แทนที่ไพพ์ไลน์ของสินทรัพย์สำหรับ Javascript) ดังนั้นฉันสามารถทดสอบโมดูล Javascript ที่ฉันเขียนขึ้นสำหรับแอพของฉันได้อย่างไร ฉันติดตั้งพลอยจัสมิน, วิ่งrails generate jasmine:install, และแก้ไขjasmine.ymlให้ชี้ไปที่ตำแหน่งของแหล่งจาวาสคริปต์และข้อมูลจำเพาะของฉัน ปัญหาคือฉันไม่สามารถใช้คำสั่งนำเข้า / ส่งออก (ตัวอย่างเช่นพยายามโหลดโมดูลแรกของฉันไปที่ผลการทดสอบในข้อผิดพลาดนี้ใน Chrome: Uncaught SyntaxError: Unexpected token 'export') จากสิ่งที่ฉันสามารถบอกได้ฉันต้องตั้งค่าจัสมินให้ใช้บาเบล แต่ฉันไม่มีโชคในการค้นหาคำแนะนำเกี่ยวกับวิธีการทำสิ่งนี้ในเค้าโครง Rails 6 ใหม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.