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

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

5
เปลี่ยนประเภทคอลัมน์จาก Date เป็น DateTime ระหว่างการย้าย ROR
ฉันต้องเปลี่ยนประเภทคอลัมน์จากวันที่เป็นวันที่และเวลาสำหรับแอปที่ฉันกำลังทำ ฉันไม่สนใจเกี่ยวกับข้อมูลในขณะที่ยังคงพัฒนาอยู่ ฉันจะทำสิ่งนี้ได้อย่างไร

7
การระบุรุ่นรางที่จะใช้เมื่อสร้างแอปพลิเคชันใหม่
ฉันมีรางสองรุ่น (2.1.0 และ 2.2.2) ติดตั้งอยู่ในคอมพิวเตอร์ของฉัน เมื่อฉันสร้างแอปพลิเคชันใหม่เป็นไปได้หรือไม่ที่จะระบุว่าฉันต้องการใช้เวอร์ชั่นที่เก่ากว่า (2.1.0)

7
ฉันจะใช้ตัวช่วยเหลือมุมมองในมุมมอง ActionMailer ได้อย่างไร
ฉันต้องการใช้วิธีที่ฉันกำหนดไว้ในapp/helpers/annotations_helper.rbมุมมอง ReportMailer ของฉัน ( app/views/report_mailer/usage_report.text.html.erb) ฉันจะทำสิ่งนี้ได้อย่างไร จากคู่มือนี้ดูเหมือนว่าadd_template_helper(helper_module)วิธีการอาจทำสิ่งที่ฉันต้องการ แต่ฉันไม่สามารถหาวิธีใช้งานได้ (BTW มีเหตุผลที่คุณเข้าถึงกลุ่มผู้ช่วยเหลือที่แตกต่างกันในมุมมองจดหมายหรือไม่นี่เป็นเรื่องที่ค่อนข้างน่ารำคาญ)

5
คลิปหนีบกระดาษ :: ข้อผิดพลาด :: MissingRequiredValidatorError with Rails 4
ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามอัปโหลดโดยใช้คลิปหนีบกระดาษกับแอพบล็อกของฉัน ไม่แน่ใจว่ามันหมายถึงอะไรเมื่อมีข้อความว่า "MissingRequiredValidatorError" ฉันคิดว่าการอัปเดต post_params และให้มัน: ภาพมันจะดีเพราะทั้งสร้างและอัปเดตใช้ post_params Paperclip::Errors::MissingRequiredValidatorError in PostsController#create Paperclip::Errors::MissingRequiredValidatorError Extracted source (around line #30): def create @post = Post.new(post_params) นี่คือ posts_controller.rb ของฉัน def update @post = Post.find(params[:id]) if @post.update(post_params) redirect_to action: :show, id: @post.id else render 'edit' end end def new @post = Post.new end def create …

12
ตัวแปรเฉพาะที่เป็นตัวเลือกใน Rails เทมเพลตบางส่วน: ฉันจะออกจากระเบียบ (กำหนด? foo) ได้อย่างไร?
ฉันเป็นเด็กเลวและใช้ไวยากรณ์ต่อไปนี้ในแม่แบบบางส่วนของฉันเพื่อตั้งค่าเริ่มต้นสำหรับตัวแปรท้องถิ่นหากค่าไม่ได้กำหนดไว้อย่างชัดเจนใน: hash locals เมื่อแสดงบางส่วน - <% foo = default_value unless (defined? foo) %> สิ่งนี้ดูเหมือนว่าจะทำงานได้ดีจนกระทั่งเมื่อไม่นานมานี้เมื่อ (โดยไม่มีเหตุผลที่ฉันสามารถแยกแยะได้) ตัวแปรที่ไม่ผ่านก็เริ่มทำตัวราวกับว่าพวกมันถูกกำหนดเป็นศูนย์ (แทนที่จะไม่ได้กำหนด) ตามที่ได้รับการชี้ให้เห็นจากคนที่เป็นประโยชน์มากมายใน SO http://api.rubyonrails.org/classes/ActionView/Base.htmlกล่าวว่าห้ามใช้ defined? foo และแทนที่จะใช้ local_assigns.has_key? :foo ฉันพยายามแก้ไขวิธีการของฉัน แต่นั่นหมายถึงการเปลี่ยนเทมเพลตจำนวนมาก ฉันสามารถ / ควรชาร์จล่วงหน้าและทำการเปลี่ยนแปลงในแม่แบบทั้งหมดหรือไม่ มีความยุ่งยากใด ๆ ที่ฉันต้องระวังหรือไม่? ฉันจะต้องทดสอบแต่ละคนอย่างขยันขันแข็งแค่ไหน?

7
ActiveModel :: ForbiddenAttributesError เมื่อสร้างผู้ใช้ใหม่
ฉันมีโมเดลนี้ใน Ruby แต่มันพ่น a ActiveModel::ForbiddenAttributesError class User < ActiveRecord::Base attr_accessor :password validates :username, :presence => true, :uniqueness => true, :length => {:in => 3..20} VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, :uniqueness => true, format: { with: VALID_EMAIL_REGEX } validates :password, :confirmation => true validates_length_of :password, :in => 6..20, :on …

5
ทำลายสตริงที่ยาวในหลายบรรทัดใน Ruby โดยไม่ต้องขึ้นบรรทัดใหม่
เมื่อเร็ว ๆ นี้เราตัดสินใจที่จะทำงานกับไกด์สไตล์ทับทิม หนึ่งในสิตที่ไม่ควรมีความกว้างเกิน 80 ตัวอักษร เนื่องจากนี่เป็นโครงการ Rails เรามักจะมีสตริงที่ยาวกว่าเล็กน้อยนั่นคือ " User X ต้องการส่งข้อความเกี่ยวกับ Thing Y " ให้คุณซึ่งไม่เหมาะกับความยาวของอักขระ 80 ตัว ฉันเข้าใจว่ามีสามวิธีในการใช้สตริงที่มีความยาวหลายบรรทัด: HEREDOC Q% {} การต่อสตริงที่เกิดขึ้นจริง อย่างไรก็ตามกรณีทั้งหมดนี้จบลงด้วยการคำนวณรอบมากขึ้นซึ่งดูเหมือนว่าโง่ สตริงอย่างเห็นได้ชัด แต่สำหรับHEREDOCและฉันต้องดึงออกจากการขึ้นบรรทัดใหม่ผ่านสิ่งที่ต้องการ%Q.gsub(/\n$/, '') มีวิธีทางไวยากรณ์ที่บริสุทธิ์ในการทำเช่นนี้ซึ่งเทียบเท่ากับเพียงแค่มีทั้งสายในหนึ่งบรรทัด? เห็นได้ชัดว่าเป้าหมายคือการไม่ใช้รอบพิเศษเพียงเพราะฉันต้องการรหัสของฉันจะอ่านง่ายขึ้นเล็กน้อย (ใช่ฉันรู้ว่าคุณต้องทำให้การแลกเปลี่ยนนั้นมาก ... แต่สำหรับความยาวของสตริงสิ่งนี้ดูเหมือนจะไร้สาระ) อัปเดต: แบ็กสแลชไม่ได้เป็นอย่างที่ฉันต้องการเพราะคุณเสียการเยื้องซึ่งส่งผลต่อสไตล์ / ความสามารถในการอ่าน ตัวอย่าง: if foo string = "this is a \ string that spans lines" …

11
คุณจะทำอย่างไรเวลาญาติใน Rails?
ฉันเขียนแอปพลิเคชั่น Rails แต่ดูเหมือนจะไม่สามารถหาเวลาที่สัมพันธ์กันได้เช่นถ้ามีการกำหนดเวลาที่แน่นอนสามารถคำนวณได้ "30 วินาทีก่อน" หรือ "2 วันก่อน" หรือถ้านานกว่าหนึ่งเดือน "9/1/2551" เป็นต้น


5
Rails.env กับ RAILS_ENV
ฉันเห็นทั้งสองตัวอย่างเมื่อตรวจสอบสิ่งที่ env หนึ่งทำงานสิ่งที่ต้องการคืออะไร พวกเขาสำหรับทุกเจตนาและวัตถุประสงค์เท่ากันหรือไม่


20
ไม่สามารถติดตั้ง pg gem
ฉันลองใช้gem install pgแต่ดูเหมือนจะใช้งานไม่ได้ gem install pg ให้ข้อผิดพลาดนี้ Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. C:/Ruby/bin/ruby.exe extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config …


4
เพิ่มพารามิเตอร์การสืบค้นลงใน link_to
ฉันกำลังเพิ่มพารามิเตอร์การสืบค้นอย่างหนักไปยัง link_to UrlHelper ฉันมีมุมมองดัชนีเช่นที่มีองค์ประกอบ UI สำหรับการเรียงลำดับการกรองและการแบ่งหน้า (ผ่าน will_paginate) ปลั๊กอิน will_paginate จัดการการคงอยู่ภายในหน้าของพารามิเตอร์การสืบค้นอย่างถูกต้อง มีกลไกอัตโนมัติในการเพิ่มพารามิเตอร์การสืบค้นไปยังเส้นทางที่กำหนดชื่อหรือฉันต้องทำด้วยตนเอง? การวิจัยจำนวนมากเกี่ยวกับโครงสร้างที่ดูเรียบง่ายนี้ทำให้ฉันไร้ความรู้สึก แก้ไข ความท้าทายบางประการ: หากฉันมีสองพารามิเตอร์การสืบค้นฝากข้อมูล & การเรียงลำดับจะกำหนดค่าเฉพาะเป็นหนึ่งในพารามิเตอร์เหล่านี้ใน link_to ได้อย่างไรในขณะที่รักษามูลค่าปัจจุบันของอีกพารามิเตอร์ไว้ ตัวอย่างเช่น: <%= link_to "0", profiles_path(:bucket => '0', :sorting=>?? ) %> หากฉันมีพารามิเตอร์การสืบค้นหลายอันการฝากข้อมูล & การเรียง & page_size และฉันต้องการตั้งค่าเป็นหนึ่งในนั้นมีวิธีการ 'อัตโนมัติ' รวมชื่อและค่าของพารามิเตอร์ที่เหลืออยู่หรือไม่ ตัวอย่างเช่น: <%= link_to "0", profiles_path(:bucket => '0', [include sorting and page_size name/values …

12
Ruby on Rails: จะกำหนดค่าคงที่ทั่วโลกได้ที่ไหน
ฉันเพิ่งเริ่มต้นกับ webapp Ruby on Rails ครั้งแรกของฉัน ฉันมีโมเดลที่ต่างกันมุมมองคอนโทรลเลอร์และอื่น ๆ ฉันต้องการที่จะหาสถานที่ที่ดีในการติดคำจำกัดความของค่าคงที่ทั่วโลกอย่างแท้จริงซึ่งใช้กับแอพทั้งหมดของฉัน โดยเฉพาะอย่างยิ่งพวกเขาใช้ทั้งในตรรกะของแบบจำลองของฉันและในการตัดสินใจในมุมมองของฉัน ฉันไม่สามารถหาสถานที่ที่แห้งเพื่อวางคำจำกัดความเหล่านี้ที่พวกเขาสามารถใช้ได้กับทุกรุ่นของฉันและในทุกมุมมองของฉัน COLOURS = ['white', 'blue', 'black', 'red', 'green']เพื่อที่จะใช้ตัวอย่างที่เฉพาะเจาะจงที่ผมต้องการอย่างต่อเนื่อง สิ่งนี้ใช้ทั่วสถานที่ทั้งในรุ่นและมุมมอง ฉันจะกำหนดได้ที่ไหนในที่เดียวเพื่อให้เข้าถึงได้ สิ่งที่ฉันได้ลอง: ตัวแปรระดับคงที่ในไฟล์ model.rb @@COLOURS = [...]ที่พวกเขากำลังเกี่ยวข้องมากที่สุดกับเช่น แต่ฉันไม่สามารถหาวิธีที่มีสติที่จะกำหนดมันเพื่อที่ฉันสามารถเขียนในมุมมองของฉันCard.COLOURSมากกว่าสิ่ง kludgy Card.first.COLOURSเช่น วิธีการในรูปแบบคล้ายdef colours ['white',...] end- ปัญหาเดียวกัน วิธีใน application_helper.rb - นี่คือสิ่งที่ฉันทำจนถึงตอนนี้ แต่ผู้ช่วยสามารถเข้าถึงได้ในมุมมองเท่านั้นไม่ใช่ในแบบจำลอง ฉันคิดว่าฉันอาจลองใช้งานบางอย่างใน application.rb หรือ environment.rb แต่สิ่งเหล่านั้นดูไม่ถูกต้อง มีวิธีกำหนดสิ่งที่จะสามารถเข้าถึงได้ทั้งจากแบบจำลองและจากมุมมองหรือไม่? ฉันหมายความว่าฉันรู้ว่าแบบจำลองและมุมมองควรแยกจากกัน แต่แน่นอนในบางโดเมนจะมีเวลาที่พวกเขาต้องอ้างถึงความรู้เฉพาะโดเมนเดียวกัน

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