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

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

5
คุณจะเขียนการโยกย้ายเพื่อเปลี่ยนชื่อรุ่น ActiveRecord และตารางใน Rails ได้อย่างไร?
ฉันตั้งชื่อได้แย่มากและตระหนักว่ามีชื่อชุดที่ดีกว่าสำหรับโมเดลของฉันในแอพ Rails ของฉัน มีวิธีใดบ้างที่จะใช้การย้ายข้อมูลเพื่อเปลี่ยนชื่อรุ่นและตารางที่เกี่ยวข้อง

5
Rails 4: รายการประเภทข้อมูลที่มีอยู่
ฉันจะหารายการประเภทข้อมูลที่สามารถใช้ใน Ruby on Rails ได้ที่ไหน เช่น text string integer float date ฉันเรียนรู้เกี่ยวกับสิ่งใหม่ ๆ อยู่เสมอและฉันชอบที่จะมีรายการที่ฉันสามารถอ้างอิงได้ง่าย

5
ฉันจะรับชื่อคลาส Ruby ได้อย่างไร
ฉันจะรับชื่อคลาสจากวัตถุ ActiveRecord ได้อย่างไร ฉันมี: result = User.find(1) ฉันเหนื่อย: result.class # => User(id: integer, name: string ...) result.to_s # => #<User:0x3d07cdc>" ฉันต้องการชื่อคลาสเท่านั้นในสตริง ( Userในกรณีนี้) มีวิธีการไหม? ฉันรู้ว่ามันค่อนข้างธรรมดา แต่ฉันค้นหาทั้งเอกสารของ Rails และ Ruby และฉันหามันไม่เจอ

9
ฉันจะจัดการชื่อดัชนีที่ยาวเกินไปในการโยกย้าย Ruby on Rails ActiveRecord ได้อย่างไร
ฉันกำลังพยายามเพิ่มดัชนีเฉพาะที่สร้างขึ้นจากคีย์ต่างประเทศของตารางที่เชื่อมโยงสี่ตาราง: add_index :studies, ["user_id", "university_id", "subject_name_id", "subject_type_id"], :unique => true ข้อ จำกัด ของฐานข้อมูลสำหรับชื่อดัชนีทำให้การโยกย้ายล้มเหลว นี่คือข้อความแสดงข้อผิดพลาด: ชื่อดัชนี 'index_studies_on_user_id_and_university_id_and_subject_name_id_and_subject_type_id' ในตาราง 'การศึกษา' ยาวเกินไป; ขีด จำกัด คือ 64 อักขระ ฉันจะจัดการสิ่งนี้ได้อย่างไร ฉันสามารถระบุชื่อดัชนีอื่นได้หรือไม่?

29
การใช้ Rails 3.1 คุณใส่โค้ด JavaScript ของ“ หน้าเฉพาะ” ไว้ที่ไหน?
เพื่อความเข้าใจของฉัน JavaScript ทั้งหมดของคุณจะถูกรวมเป็น 1 ไฟล์ Rails ทำสิ่งนี้ตามค่าเริ่มต้นเมื่อเพิ่ม//= require_tree .ลงในapplication.jsไฟล์ Manifest ของคุณ สิ่งนี้ฟังดูเหมือนช่วยชีวิตจริง แต่ฉันกังวลเล็กน้อยเกี่ยวกับรหัส JavaScript เฉพาะหน้า รหัสนี้จะถูกดำเนินการในทุกหน้า? สิ่งสุดท้ายที่ฉันต้องการคือการทำให้วัตถุทั้งหมดของฉันเป็นอินสแตนซ์สำหรับทุกหน้าเมื่อจำเป็นเท่านั้นใน 1 หน้า นอกจากนี้ยังไม่มีโอกาสที่จะเกิดรหัสที่ขัดแย้งกันได้หรือไม่ หรือคุณใส่scriptแท็กขนาดเล็กที่ด้านล่างของหน้าเว็บที่เพิ่งเรียกใช้เป็นวิธีการที่เรียกใช้โค้ดจาวาสคริปต์สำหรับหน้า? คุณไม่ต้องการ require.js อีกต่อไปแล้วใช่ไหม ขอบคุณ แก้ไข : ฉันขอบคุณคำตอบทั้งหมด ... และฉันไม่คิดว่าพวกเขาจะได้รับปัญหาจริงๆ บางคนเกี่ยวกับการออกแบบและดูเหมือนจะไม่เกี่ยวข้อง ... และคนอื่น ๆ พูดถึงjavascript_include_tag... ที่ฉันรู้ว่ามีอยู่ (ชัด ๆ ... ) แต่มันจะปรากฏว่าทางรถไฟ 3.1 จะก้าวไปข้างหน้าเพื่อห่อหุ้มทั้งหมด JavaScript ของคุณเป็น 1 ไฟล์แทนที่จะโหลด JavaScript ที่ด้านล่างของแต่ละหน้า ทางออกที่ดีที่สุดที่ฉันสามารถทำได้คือห่อคุณสมบัติบางอย่างในdivแท็กด้วยids …

5
Rails I18n คำเตือนการยกเลิกการตรวจสอบความถูกต้อง
ฉันเพิ่งอัพเดตเป็น Rails 4.0.2 และฉันได้รับคำเตือนนี้: [เลิกใช้แล้ว] I18n.enforce_available_locales จะเริ่มต้นเป็นจริงในอนาคต หากคุณต้องการข้ามการตรวจสอบสถานที่ของคุณจริงๆคุณสามารถตั้งค่า I18n.enforce_available_locales = false เพื่อหลีกเลี่ยงข้อความนี้ มีปัญหาด้านความปลอดภัยในการตั้งค่าเป็นเท็จหรือไม่?

29
ไม่มีเส้นทางที่ตรงกับ“ / users / sign_out” ประดิษฐ์ราง 3
ฉันได้ติดตั้ง devise ในแอพของฉันและใช้สิ่งต่อไปนี้ในapplication.html.erbไฟล์ของฉัน: <div id="user_nav"> <% if user_signed_in? %> Signed in as <%= current_user.email %>. This cannot be cheese? <%= link_to 'Sign out', destroy_user_session_path %> <% else %> <%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %> <% end %> </div> ฉันวิ่งrake routesและยืนยันว่าเส้นทางทั้งหมดถูกต้อง นอกจากนี้ในของฉัน routes.rbไฟล์ฉันมีและdevise_for :usersroot :to …

4
Rails update_attributes โดยไม่บันทึก?
มีทางเลือกอื่นสำหรับ update_attributes ที่ไม่ได้บันทึกบันทึกหรือไม่? ดังนั้นฉันสามารถทำสิ่งที่ชอบ: @car = Car.new(:make => 'GMC') #other processing @car.update_attributes(:model => 'Sierra', :year => "2012", :looks => "Super Sexy, wanna make love to it") #other processing @car.save BTW ฉันรู้ว่าฉันทำได้@car.model = 'Sierra'แต่ฉันต้องการอัปเดตพวกเขาทั้งหมดในบรรทัดเดียว

14
ฉันจะปิดการใช้งานการบันทึกข้อความไปป์ไลน์ (sprockets) ใน Ruby on Rails 3.1 ได้อย่างไร
เฟืองจะค่อนข้างละเอียดในบันทึก (dev) โดยค่าเริ่มต้นภายใต้ Ruby on Rails 3.1 (RC1): Started GET "/assets/application.css" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/application.css.scss (5ms) (pid 6303) Started GET "/assets/application.js" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/default.css.scss (15ms) (pid 6303) ... Started GET "/assets/default/header_bg.gif" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Served asset /default/header_logo.gif - …

7
Rails Routing Helpers (เช่น mymodel_path (model)) สามารถใช้ในแบบจำลองได้หรือไม่?
บอกว่าฉันมี Rails Model ชื่อ Thing สิ่งที่มีแอตทริบิวต์ URL ที่สามารถเลือกที่จะกำหนดให้อยู่ที่ไหนสักแห่ง URL บนอินเทอร์เน็ต ในมุมมองรหัสฉันต้องการตรรกะที่ทำต่อไปนี้: <% if thing.url.blank? %> <%= link_to('Text', thing_path(thing)) %> <% else %> <%= link_to('Text', thing.url) %> <% end %> ตรรกะตามเงื่อนไขนี้ในมุมมองน่าเกลียด แน่นอนฉันสามารถสร้างฟังก์ชันผู้ช่วยซึ่งจะเปลี่ยนมุมมองเป็น: <%= thing_link('Text', thing) %> นั่นแก้ปัญหาการฟุ่มเฟื่อย แต่ฉันชอบที่จะมีฟังก์ชั่นการใช้งานในรูปแบบของตัวเอง ในกรณีนี้รหัสการดูจะเป็น: <%= link_to('Text', thing.link) %> เห็นได้ชัดว่านี่จะต้องมีวิธีการเชื่อมโยงในรูปแบบ นี่คือสิ่งที่จะต้องมี: def link (self.url.blank?) ? thing_path(self) : …


6
ฉันจะระบุอัญมณีท้องถิ่นใน Gemfile ของฉันได้อย่างไร
ฉันต้องการให้ Bundler โหลดอัญมณีในท้องถิ่น มีตัวเลือกสำหรับสิ่งนั้นหรือไม่? หรือฉันต้องย้ายโฟลเดอร์อัญมณีไปยังไดเรกทอรี. bundle หรือไม่

5
Rails ที่เงื่อนไขใช้ NOT NIL
ใช้สไตล์ 3 รางฉันจะเขียนสิ่งที่ตรงกันข้ามอย่างไร: Foo.includes(:bar).where(:bars=>{:id=>nil}) ฉันต้องการหาที่ id ไม่ได้เป็นศูนย์ ฉันเหนื่อย: Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql แต่มันกลับมา: => "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\" = 1)" นั่นไม่ใช่สิ่งที่ฉันต้องการแน่นอนและเกือบจะดูเหมือนเป็นข้อผิดพลาดใน AREL

7
กำ rake exec หมายถึงอะไร?
อะไรbundle exec rake db:migrateหมายถึง? หรือbundle exec rake <command>โดยทั่วไป? ฉันเข้าใจว่าbundleจะดูแลสิ่งต่าง ๆ ใน Gemfile ฉันรู้ว่าคำว่า "exec" หมายถึงอะไร ฉันเข้าใจว่าrakeรักษาสิ่งต่าง ๆ ไว้ในสคริปต์ที่คุณสามารถทำได้และฉันรู้ว่านั่นdb:migrateเป็นหนึ่งในนั้น ฉันแค่ไม่รู้ว่าคำเหล่านี้ทำอะไรกัน เหตุใดจึงควรbundleใช้เพื่อดำเนินการrakeเพื่อโยกย้ายฐานข้อมูล

12
ใช้ฟอนต์กับไพพ์ไลน์ของ Rails
ฉันได้รับการกำหนดค่าแบบอักษรบางอย่างในไฟล์ Scss ของฉันดังนี้: @font-face { font-family: 'Icomoon'; src: asset-url('icoMoon.eot?#iefix', font) format('embedded-opentype'), asset-url('icoMoon.woff', font) format('woff'), asset-url('icoMoon.ttf', font) format('truetype'), asset-url('icoMoon.svg#Icomoon', font) format('svg'); } ไฟล์ตัวอักษรที่แท้จริงจะถูกเก็บไว้ใน / app / สินทรัพย์ / แบบอักษร / ฉันเพิ่มลงconfig.assets.paths << Rails.root.join("app", "assets", "fonts")ในไฟล์ application.rb แล้ว และคอมไพล์ซอร์ส CSS มีดังต่อไปนี้: @font-face { font-family: 'Icomoon'; src: url(/assets/icoMoon.eot?#iefix) format("embedded-opentype"), url(/assets/icoMoon.woff) format("woff"), url(/assets/icoMoon.ttf) format("truetype"), …

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