小编Tin*_*n81的帖子

为什么禁用的文本在Safari中不会以黑色呈现?

我试图将禁用的输入元素内的文本显示为黑色.这适用于大多数浏览器:

input[type="text"][disabled],
input[type="text"]:disabled {
  color: #000000;
}
Run Code Online (Sandbox Code Playgroud)

但是,在Safari(版本6.0.2)中,文本稍微亮一些.让我最困惑的是,当我在浏览器中选择文本并在我的控制台上查找元素信息时,它清楚地显示:

rgba(0,0,0)
Run Code Online (Sandbox Code Playgroud)

因此,在它的代码是黑色的,但尽管如此,它在东西呈现其他较黑.这怎么可能?

这是一个Safari bug吗?

感谢您对此事的任何帮助.

css safari css3 safari6

6
推荐指数
2
解决办法
4193
查看次数

如何(大规模)减少Rails应用程序中的SQL查询数量?

在我的Rails应用程序中,我users可以拥有许多invoices,反过来可以有很多payments.

现在,在dashboard视图我要汇总所有payments一个user曾经接受,要么下令按年,季度或月.该payments也分为,,和税收.

user.rb:

class User < ActiveRecord::Base

  has_many  :invoices
  has_many  :payments

  def years
    (first_year..current_year).to_a.reverse
  end

  def year_ranges
    years.map { |y| Date.new(y,1,1)..Date.new(y,-1,-1) }
  end

  def quarter_ranges
    ...
  end

  def month_ranges
    ...
  end

  def revenue_between(range, kind)
    payments_with_invoice ||= payments.includes(:invoice => :items).all
    payments_with_invoice.select { |x| range.cover? x.date }.sum(&:"#{kind}_amount") 
  end

end
Run Code Online (Sandbox Code Playgroud)

invoice.rb:

class Invoice < ActiveRecord::Base

  belongs_to :user
  has_many :items
  has_many :payments …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails ruby-on-rails-3

6
推荐指数
1
解决办法
2416
查看次数

Ruby on Rails和Javascript确认Safari 12中的弹出窗口

在我的Rails应用程序中,我有很多像这样的链接:

link_to "Destroy", project_path, :method => :delete, :data => { :confirm => "Are you sure?" }
Run Code Online (Sandbox Code Playgroud)

confirm用于触发Javascript弹出窗口的数据属性(在大多数浏览器中仍然如此).

然而,在Safari 12中,这些弹出窗口似乎不再起作用.

而不是实际的弹出窗口,我得到旋转的风车(这里的错误信息会有所帮助,Apple!).我的浏览器控制台或Rails日志中也没有报告错误.

怎么解决这个问题?

PS:我的Rails版本是5.1.4

javascript safari ruby-on-rails

6
推荐指数
1
解决办法
298
查看次数

如何消除 ActionController::UnknownHttpMethod 错误?

在我的 Rails 生产网站上,我有时会收到十几个左右的错误:

# 中发生 ActionController::UnknownHttpMethod:

TRACK,接受的 HTTP 方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT、PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK、UNLO​​CK、VERSION-CONTROL、REPORT、CHECKOUT、CHECKIN、UNCHECKOUT、MKWORKSPACE、更新、标签、合并、基线控制、MKACTIVITY、ORDERPATCH、ACL、SEARCH、MKCALENDAR 和 PATCH

我想这是当机器人使用 Rails 无法处理的 HTTP 方法访问我的网站时(在我的情况下,它主要是OPENVASTRACKDEBUGTRACKINDEX ,但也有像WMIXLVXM这样的奇怪方法)。

有没有办法以任何方式使这些消息静音?我仍然不确定这是 Rails 问题还是 Nginx 问题。

我正在使用自定义控制器向用户呈现自定义错误页面:

Rails.application.routes.draw do

  %w(404 500).each do |status|
    match status, :to => 'errors#show', :status => status, :via => :all
  end

  ...

end
Run Code Online (Sandbox Code Playgroud)
class ErrorsController < ApplicationController

  def show
    status = params[:status] || 500
    @title = "Error"
    render(:status => status, :template => "errors/show.html.erb") …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails http nginx

6
推荐指数
2
解决办法
1233
查看次数

使用jQuery循环输入字段以找到最高值?

我的input[type=text]页面上有很多字段,我想遍历所有字段以查找并返回最高值.

有没有办法用jQuery做到这一点?

谢谢你的帮助.

jquery

5
推荐指数
2
解决办法
5798
查看次数

Ruby on Rails gem使密码更安全吗?

我从头开始构建了一个Ruby on Rails认证系统,效果很好.

(我知道存在Devise,但我想编写自己的系统,以便更好地掌握Ruby on Rails.)

唯一令我担心的是用户从字典中选择单词,序列号(例如"12345679"),他们自己的用户名,或者他们自己的经典"密码" password.

有没有一个宝石能够证明这些宝石?或者我必须在这里使用正则表达式吗?

谢谢你的帮助.

passwords ruby-on-rails password-protection ruby-on-rails-3 ruby-on-rails-3.2

5
推荐指数
1
解决办法
251
查看次数

如何在Rspec和Rails 4中测试质量分配错误?

我最近将我的Rails应用程序从Rails 3升级到4,并且此Rspec测试不再通过:

# spec/models/user_spec.rb:

require 'spec_helper'

describe User do

  it "should not allow access to admin" do
    expect do
      User.new(:admin => true)
    end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
  end

end
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Failure/Error: end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
NameError: uninitialized constant ActiveModel::MassAssignmentSecurity
Run Code Online (Sandbox Code Playgroud)

我怀疑这是由于切换到Rails 4的强大参数.

我现在如何测试质量分配错误?

谢谢你的帮助.

ruby rspec ruby-on-rails ruby-on-rails-4

5
推荐指数
1
解决办法
898
查看次数

如何获取Rails视图以返回其关联的操作名称?

我有这个非常简单的控制器来管理我的Rails应用程序中的静态页面:

class PagesController < ApplicationController

  def home
  end

  def features
  end

  def pricing
  end

end
Run Code Online (Sandbox Code Playgroud)

如何获取视图模板以返回其自己的名称,因此我可以执行以下操作:

# pricing.html.erb

<h1><%= my_own_name.capitalize %></h1>

# --> "Pricing"
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

ruby ruby-on-rails

5
推荐指数
1
解决办法
355
查看次数

如何在jQuery中将两个事件处理程序组合成一个?

有没有一种简单的方法将这两个jQuery函数合二为一,从而消除了不必要的重复?

$('form#search input').on('keyup', function() {
    if ($(this).val() == '') {
    $('a#clear').hide();
  }
  else {
    $('a#clear').show();
  } 
});

$('form#search select').on('change', function() {
    if ($(this).val() == '') {
    $('a#clear').hide();
  }
  else {
    $('a#clear').show();
  }
});
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

jquery

5
推荐指数
2
解决办法
4255
查看次数

如何通过URL更改区域设置?

在我的双语Rails 4应用程序中,我有LocalesController这样的:

class LocalesController < ApplicationController

  def change_locale
    if params[:set_locale]
      session[:locale] = params[:set_locale] 
      url_hash = Rails.application.routes.recognize_path URI(request.referer).path
      url_hash[:locale] = params[:set_locale]
      redirect_to url_hash
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

用户可以通过以下表单更改其语言环境:

def locale_switcher
  form_tag url_for(:controller => 'locales', :action => 'change_locale'), :method => 'get', :id => 'locale_switcher' do
  select_tag 'set_locale', options_for_select(LANGUAGES, I18n.locale.to_s)
end
Run Code Online (Sandbox Code Playgroud)

这有效.

但是,现在用户无法通过URL更改语言.

例如,如果用户在页面上www.app.com/en/projects然后手动将URL更改为www.app.com/fr/projects,则应该看到该页面的法语版本,但没有任何反应.

这在许多Rails应用程序中可能无关紧要,但在我的应用程序中它非常重要.

怎么修好?

谢谢你的帮助.

ruby localization ruby-on-rails

5
推荐指数
1
解决办法
3492
查看次数