Tag: ruby on rails 4

Rails 4 – 如果条件不适用范围

我想创建一个具有某些条件的范围,其中一个返回不是特定范围。 目前,此解决方案有效: scope :my_scope, ->(my_var) { scope = where(‘TRUE’) if my_var.condition1? scope = scope.where({ :some_condition => :some_value }) end if my_var.condition2? scope = scope.where({ :some_condition => :some_value }) end scope } 还有其他更好的解决方案吗? 问候

实例变量未使用重定向设置

什么会导致我的实例变量@product没有为重定向设置/传递。 Product是ActiveModel对象,而不是ActiveRecord。 更具体地说,@ product变量没有出现在redirect_to(new_services_path)或redirect_to(home_path)页面中。 由于@product变量需要在我的页脚中填充每页上的表单。 Application_controller: class ApplicationController < ActionController::Base before_filter :set_product private def set_product @product ||= Product.new end end Product_controller: def new end def create @product = Product.new(params[:product]) if @product.category == “wheels” redirect_to(new_services_path) else redirect_to(home_path) end end 与此原始post相关的问题。 通过多个部分传递变量(轨道4)

使用Heroku的反向代理(用于WordPress)将不会显示完整页面

我正在尝试使用反向代理服务在运行在Heroku上的rails应用程序上的/ EC2上的EC2上运行的Wordpress博客。 我已经使用了rack-reverse-proxy gem并按照这样的指示: 如何使用子目录而不是子域? 我的应用程序运行在http://myapp.com ,我的主要目标(wordpress)服务器运行在http://ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com 。 直接访问时,目标服务器上的页面都可以正常运行。 但是, 无论我尝试通过反向代理的哪个页面,HTML都会被切断 。 我试过在Ubuntu(EC2)上使用我自己的Wordpress自定义版本以及像Bluehost这样的托管示例。 我试图访问简单,手工制作的HTML和文本测试文件,以及wordpress自动生成的php文件。 每次,文件都被切断。 文本文件在~1000个字符后随机切断(这是可变的) 同样适用于手工编码的HTML文件 WordPress文件似乎在 (通常是mid-word)期间被截断并呈现空 。 如果页面存在(例如http://ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com/test-post ,它将在myapp.com/blog/test-post加载(至少部分) myapp.com/blog/test-post ,所以我不知道重写是个问题。 我已经在wordpress /目标服务器上尝试了足够多的变量, 我倾向于认为它是Rails方面的东西 (无论是在本地运行“myapp”还是在Heroku测试服务器上运行,我都有同样的问题)。 除此之外,我被困住了。 关于我可能做错什么的任何想法? Apache日志中没有任何内容表明任何事情都被切断了。 我对此表示无足轻重,并且非常感谢任何帮助。

设计令牌身份validation – 安装设备令牌身份validation后无法创建用户帐户

我安装了devise token auth gem。 https://github.com/lynndylanhurley/devise_token_auth#model-concerns 我设法得到了路线和所有。 但不幸的是,注册已停止工作。 当我尝试注册时,它会显示这样的错误。 NoMethodError in Devise::RegistrationsController#create undefined method `provider’ for # Extracted source (around line #433): else match = match_attribute_method?(method.to_s) match ? attribute_missing(match, *args, &block) : super end end 这是我的路线 devise_for :admin_users, ActiveAdmin::Devise.config ActiveAdmin.routes(self) devise_for :users namespace :api do scope :v1 do mount_devise_token_auth_for ‘User’, at: ‘auth’ end end 根据文档,注册需要电子邮件,密码和password_confirmation。 我不是我想念的。 […]

Rails 4:使用merit gem创建点规则

我正在将我的应用程序的投票和声誉系统从activerecord-reputation-system转换为优点,因为后者似乎有一个更活跃的核心团队。 我正在尝试为我的应用中的问题和答案建立投票点规则。 理想情况下,当用户对某个问题进行投票时,该规则会为问题本身以及问题的创建者分配点数。 从merit关于点规则的自述文章部分,我看到了这个例子: score 15, on: ‘reviews#create’, to: [:reviewer, :reviewed] 我的理解是:reviewer在这个例子中, reviewed :reviewer和reviewed者可以获得分配给他们的分数。 但是,当我在我自己的point_rules.rb中尝试这个时: score 10, :on => ‘questions#vote’, :to => :question 我收到以下错误: [merit] NoMethodError on `Question#question` (called from Merit::TargetFinder#other_target) 我知道我在这里遗漏了一些东西,但有人可以告诉我它是什么吗?

自定义Railsvalidation不向输入添加“field_with_errors”包装器

我正在使用一个需要一些自定义validation的表单的Rails 4站点。 但是当validation标准失败并显示错误消息时,我正在检查的输入字段没有给出field_with_errors包装器。 正在validation的所有其他字段正确地获取包装器,但它们的validation是对每个属性的简单存在检查。 如何使用自定义validation添加包装器? 附加说明:如果可能的话,我只想显示一次错误消息 – 但要突出显示这两个字段。 在我的模型中: validate :at_least_one_apply_method def at_least_one_apply_method if [self.apply_url, self.application_instructions].reject(&:blank?).size == 0 errors[:base] << ("Please provide at least one: Where to Apply or Applications Instructions.") end end 让我知道所需的任何其他信息。 谢谢!

如何使用PSequel GUI连接到Mac上的localhost PostgreSQL?

我按照本教程在Mac上安装PG。 这是我第一次在本地使用PG。 在此之前我在Rails项目中使用了很多Sqlite。 我找到了这个PSequel GUI应用程序 ,我刚安装它。 但我不知道如何连接到我的localhost PostgreSQL数据库。 我的是什么: 主机/sockets? 港口? (我使用localhost:3000在本地测试我的Rails应用程序) 用户? 密码? 数据库? 谢谢。

从ActiveRecord / Rails查询中检索单个记录

我发出如下的查询,完全检索0或1条记录: car = Car.where(vin: ‘1234567890abcdefg’) 返回的当然是长度为1的汽车列表。所以我最终在查询结束时添加.first : car = Car.where(vin: ‘1234567890abcdefg’).first 好像在Rails中应该有更好的方法。 是否存在类似.onlyOne东西,只返回一辆Car并且如果超过1则抛出exception? car = Car.where(vin: ‘1234567890abcdefg’).onlyOne 要么 car = Car.onlyOne(vin: ‘1234567890abcdefg’)

Rails的图片url4 +不包括哈希

我有一个Rails 4应用程序,并使用less-rails gem。 在main.css.less ,我使用以下命令向网站添加背景图像: body { background-image: image-url(“background.jpg”); } 一切都在本地工作正常,但当我使用预编译资产推送到我的服务器时,图像url不会更新以包含哈希。 也就是说,图像现在位于public/assets/background-074c0b767cd8cfb2da93b37ea3596326.jpg但我的css文件仍然是url(/assets/background.jpg) 。 下面的链接似乎很有希望,但没有一个推荐的解决方案有效(大多数是特定的sass ,虽然我尝试了image-url , asset-url和他们各自的-path )。 如何在Rails 4中引用CSS中的图像 有任何想法吗?

祖先gem是否适用于Rails 4?

只提到GitHub文档中的Rails 3 – 有人知道它是否与Rails 4兼容? 我问,因为看起来它已被更新以处理Ruby 2.1.0