Tag: ruby

Rails url路径和资源路由

我有一个具体的问题。 所以如果没有人帮助我,我会理解的。 :)无论如何,提前谢谢! 如何使用资源和restful协议重构此代码? 特别是我的意思是render_with_hashtags_of_question(text)和render_with_hashtags_of_answer(text)方法和相关路线get ‘/questions/hashtag/:name’, to: ‘questions#hashtags’ 问题模型: require ‘active_support/all’ class Question < ActiveRecord::Base TAG_REGEX = (/#[\p{L}_]+/) belongs_to :user belongs_to :author, class_name: 'User' has_and_belongs_to_many :tags validates :text, :user, presence: true validates :text, length: { maximum: 255 } after_save :add_hashtags after_commit do self.tags.clear add_hashtags end private def add_hashtags hashtags = self.text.scan(TAG_REGEX) hashtags << self.answer.scan(TAG_REGEX) if […]

指定firebase实时数据库请求的条件和限制

我正在尝试将一些特定信息存储在firebase实时数据库中。 我的数据库结构如下所示: { “contacts” : { “-KdD1f0ecmVXHZ3H3abZ” : { “email” : “ksdsd@sdsd.com”, “first_name” : “John”, “last_name” : “Smith”, “organization_id” : 1 }, “-KdG4iHEYjInv7ljBhgG” : { “email” : “superttest@sds213123d.com”, “first_name” : “Max1”, “last_name” : “Rosse13131313l”, “organization_id” : 1 }, “-KdGAZ8Ws6weXWo0essF” : { “email” : “superttest@sds213123d.com”, “first_name” : “Max1”, “last_name” : “Rosse13131313l”, “organization_id” : 1 } } […]

设计无法保存用户

将devise_usf_fido gem( https://github.com/Cyber​​Deck/devise-fido-u2f )添加到我的RoR项目后,我无法使用注册页面保存任何创建的设计用户。 任何新用户只会持续一分钟,然后完全消失。 应用控制器 class ApplicationController < ActionController::Base protect_from_forgery with: :exception, prepend: true before_action :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation) } end def authenticate_admin! authenticate_user! redirect_to :root, status: :unauthorized unless current_user.admin? end end 用户模型 class User < ApplicationRecord # Include default devise modules. Others available are: # […]

在回调Rails 3中更新属性

继这个问题之后 ,我花了一天时间尝试将累计运行销售总额添加到我的销售表中。 这对我来说有点棘手(因为我想要),因为我希望isbn_id相同的销售总额,并且在该集合中,记录channel_id相同的位置 – 按invoice_date排名。 这就是我可以计算特定销售单位范围内的特许权使用费。 这是我的非工作回调代码,在Sale模型中: before_save :runningtotal private def runningtotal @sale = Sale.order(“invoice_date ASC”) @lastbal = @sale.find_all_by_isbn_id(@isbn).group_by(&:channel) #that sucessfully gets all sales ranked by date ascending, then groups them by channel, just for the current isbn. @lastbal.each do |channel, sale| sale.each_with_index do |sale, i| previous_sale = sale[i-1] unless i==0 next unless previous_sale @total_quantity […]

Rails设计不会将额外的输入字段保存到数据库

我在使用Devise gem将额外的用户字段值插入数据库时​​遇到问题。 我错过了什么? 我正在使用 ruby 2.1.5p273 Rails 4.1.8 这是我的user.rb模型 class User [:login] attr_accessor :login, :name, :last_name, :address, :post_number, :city, :mobile validates :username, presence: true, length: {maximum: 25}, :uniqueness => { :case_sensitive => false } validates :name, presence:true validates :last_name, presence:true validates :address, presence:true validates :post_number, presence:true validates :city, presence:true validates :country, presence:true validates :mobile, presence:true […]

无法加载此类文件 – capistrano / setup(LoadError)

我关注https://gorails.com/deploy/ubuntu/16.04 最初我有一个版本的capistrano 3.8.1,我的问题最初是: nicoara@ubuntu:~/deploy_test$ cap install STAGES=production /home/nicoara/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require’: cannot load such file — capistrano/cli (LoadError) 我用“gem install rvm-capistrano”来解决这个问题,它安装了另一个版本的capistrano,2.15.6,现在的错误是: nicoara@ubuntu:~/deploy_test$ cap install STAGES=production: `require’: cannot load such file — capistrano/setup (LoadError) 在这一点上我无法解决。

在… / latest-specs.rb中的规范缓存文件无效

我有一个类似的问题: 无效的规范缓存文件,但它没有答案。 我们的rails应用程序最近从ruby 2.1.2升级到2.1.5 当我将它下载到我的笔记本电脑上(桌面工作正常)时,需要rvm install 2.1.5,然后为2.1.5创建一个新的gemset 我试图运行bundle而没有安装bundler所以我尝试了gem install bundler并且它响应了以下错误消息: ERROR: While executing gem … (Gem::Exception) Invalid spec cache file in /my_dir/.gem/specs/api.rubygems.org%443/latest_specs.4.8 在检查该目录时,我发现有一个specs.4.8文件,但没有latest_specs.4.8文件 我试过的事情: 我删除并重新创建了gemset,同样的问题。 我跑了gem update 我吹走了/my_dir/.gem/specs并重新进行了gem update 我运行了gem update –system 我重新安装了ruby 2.1.5并再次完成了所有操作…… 当我将ruby-version更改回2.1.2并使用rvm use 2.1.2; bundle rvm use 2.1.2; bundle它没有问题(但然后捆绑器已存在于该gemset中)。 gem环境: RubyGems Environment: – RUBYGEMS VERSION: 2.2.2 – RUBY VERSION: 2.1.5 (2014-11-13 patchlevel […]

从父类inheritance类定义

我正在我的Rails模型中构建Grape Entities,如下所述: https://github.com/ruby-grape/grape-entity#entity-organization 目前,我正在根据模型本身的列哈希自动创建默认值。 所以我有一个静态的get_entity方法,它暴露了所有模型的列: class ApplicationRecord < ActiveRecord::Base def self.get_entity(target) self.columns_hash.each do |name, column| target.expose name, documentation: { desc: "Col #{name} of #{self.to_s}" } end end end 然后我在这里有一个示例Book模型在声明的Entity子类中使用它(注释还显示了我如何覆盖模型列之一的文档): class Book < ActiveRecord::Base class Entity < Grape::Entity Book::get_entity(self) # expose :some_column, documentation: {desc: "this is an override"} end end 这种方法的缺点是我总是需要在我想要实体的每个模型中复制和粘贴类Entity声明。 任何人都可以帮我自动为ApplicationRecord的所有子项生成类Entity吗? 然后,如果我需要覆盖,我将需要在类中具有Entity声明,否则如果默认声明足够并且可以保持原样。 注意: 我不能直接在ApplicationRecord中添加类Entity定义,因为Entity类应该调用get_entity,get_entity依赖于Books的column_hash。 解: […]

Rails找不到已安装的gem

我正在关注专门要求4.2.0版本的Rails教程,所以我安装了带有sudo gem install rails -v 4.2.0 Rails,它运行正常。 当我尝试使用rails _4.2.0 new test_app创建一个新的应用程序时,我收到一条错误消息,上面写着/Library/Ruby/Site/2.0.0/rubygems/dependency.rb.315: in ‘to_specs’: Could not find ‘railties’ (=4.2.0) – did find: [railties-4.2.1] (Gem::LoadError)并继续进行一点点。 我已经尝试使用sudo gem install railties -v 4.2.0安装特定版本的railties ,但我仍然得到相同的错误。 是在两个不同的地方检查/安装gem? 编辑:运行gem list产生以下输出,清楚地显示railties (4.2.0) : *** LOCAL GEMS *** actionmailer (4.2.0) actionpack (4.2.1, 4.2.0) actionview (4.2.1, 4.2.0) activejob (4.2.1, 4.2.0) activemodel (4.2.0) activerecord (4.2.0) activesupport […]

Ruby on Rails条件破碎

我有Ruby on Rails 2.3.x. 我有一个学习管理系统的数据库。 为用户提供用户ID,并进行测验。 如果用户进行任意数量的测验,我希望显示平均分数。 得分在quiz_results表中列为0到1之间的浮点数,因此* 100和.round包含user_id行。 但是如果用户没有参加任何测验,我想要”No quizzes taken” 。 这是代码: -if QuizResult.find_by_user_id(@user_id).present? =”#{(QuizResult.average(‘score’, :conditions => ‘user_id = #{@user.id}’) * 100).round}%” -else %em No quizzes taken 问题在于,无论如何,即使有quiz_results条目,仍然会出现”No quizzes taken” 。 我究竟做错了什么?