小编nul*_*tek的帖子

使用用户名而不是电子邮件进行身份验证

我是Devise的新手,并通过使用电子邮件地址作为身份验证密钥使其工作正常.但是,我有一个用例需要用户名,而我似乎无法使用它.

我已经在users表中添加了一个字符串列"username",将字段从:email更改为:登录表单中的:username,并将devise.rb中的身份验证密钥更改为:username但是当我转到登录我遇到了这个提示:"请输入一个电子邮件地址".

我究竟做错了什么?

**new.html.erb**

  <div><%= f.label :username %><br />
  <%= f.email_field :username %></div>

**User.rb**
class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :authentication_keys => [:username]

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :username
  # attr_accessible :title, :body
end

**devise.rb**
 config.authentication_keys = [ :username ]
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise

18
推荐指数
1
解决办法
2万
查看次数

PostgreSQL中有多个连接的UPDATE语句

我正在尝试更新一个名为的表incode_warrants,并将其设置warn_docket_noviol_docket_noincode_violations表中.

我在Postgres 9.3中有以下SQL查询,但是当它触发时我收到以下错误:

Error : ERROR:  relation "iw" does not exist
LINE 1: update iw
Run Code Online (Sandbox Code Playgroud)

我更像是一个活跃记录的人,所以我的原始SQL技能严重缺乏.我想知道是否有人可以帮助指出我正确的方向如何正确地进行此查询.

update iw
set iw.warn_docket_no = iv.viol_docket_no
from incode_warrants as iw
INNER JOIN incode_warrantvs as iwvs
on iw.warn_rid = iwvs.warnv_rid
INNER JOIN incode_violations as iv
ON iv.viol_citation_no = iwvs.warnv_citation_no and iv.viol_viol_no = iwvs.warnv_viol_no
Run Code Online (Sandbox Code Playgroud)

sql postgresql inner-join sql-update

15
推荐指数
3
解决办法
2万
查看次数

Rails模型中的条件验证

我有一个Rails 3.2.18应用程序,我正在尝试对模型进行一些条件验证.

在呼叫模型中有两个字段:location_id(与预定义位置列表的关联)和:location_other(可以是某人可以键入字符串的文本字段,或者在这种情况下是地址).

我希望能够做的是在创建对以下位置的调用时使用验证:location_id或:location_other被验证存在.

我已经阅读了Rails验证指南并且有点困惑.希望有人可以通过条件轻松地阐明如何轻松地做到这一点.

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

11
推荐指数
1
解决办法
2万
查看次数

无法在Rails 4中自动加载常量API控制器

我正在我的Rails 4.2.6应用程序中创建一个简单的api端点,但我遇到了问题.

当我点击网址:http://lvh.me:9077 / api/v1/gres我收到以下错误:

Unable to autoload constant Api::V1::GrubsController, expected /Users/shakycode/code/grubs/app/controllers/api/v1/grubs_controller.rb to define it
Run Code Online (Sandbox Code Playgroud)

这是我的routes.rb文件定义端点.

namespace :api do
    namespace :v1 do
      resources :grubs, only: [:index]
    end
  end
Run Code Online (Sandbox Code Playgroud)

这是我的app/controllers/api/v1/grubs_controller.rb

class API::V1::GrubsController < ApplicationController
   protect_from_forgery with: :null_session
   before_action :destroy_session

 def destroy_session
   request.session_options[:skip] = true
 end

  def index
    @grubs = Grub.all
    respond_to do |format|
      format.json { render json: @grubs}
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我有一个Rails 4.2.1应用程序,我使用相同的策略,但在4.2.6我发生这种错误时,我试图拉动API.

提前致谢!

更新:这是在浏览器中使用better_errors引发的异常:

load_missing_constantactivesupport (4.2.6) lib/active_support/dependencies.rb
490
491
492
493
494
495 …
Run Code Online (Sandbox Code Playgroud)

api-design ruby-on-rails ruby-on-rails-4

11
推荐指数
2
解决办法
7740
查看次数

查询rails中的日期范围

我有一个范围来查询今天的电话.基于范围,我用它来计算今天的通话量.

我的日期以UTC格式存储,但rails会转换为我当地的时区.我想要做的是在今天00:00到23:59之间找到所有电话.

范围:

scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
Run Code Online (Sandbox Code Playgroud)

irb输出:(因UTC而捕获的呼叫)

irb(main):010:0> Call.last.transfer_date
  Call Load (0.9ms)  SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> Sun, 07 Oct 2012 19:45:00 CDT -05:00
irb(main):011:0> 

irb(main):011:0> Call.last.transfer_date.utc
  Call Load (1.3ms)  SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> 2012-10-08 00:45:00 UTC
Run Code Online (Sandbox Code Playgroud)

我正在试图弄清楚如何只查询今天00:00到23:59之间的通话.到目前为止尝试使用和不使用utc,zone等的范围都不起作用.它一直根据UTC提取范围,包括昨天的呼叫(昨天如果用当地时区格式化).

如何在两次之间查询以获得正确的输出?我有点迷失在这里.

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

10
推荐指数
2
解决办法
1万
查看次数

Rails 5实时搜索,Keyup丢失输入焦点Turbolinks

我有一个rails 5.1.3 app,它是一个基本的联系模式(方便的名字和数字).我正在使用ransack搜索索引视图/页面.我正在使用coffeescript来监听输入上的键盘事件并且它正在工作,在我键入时触发(按照rails dev日志)但是表单上的输入失去焦点而部分不会在我点击时继续刷新回到put和type.我认为这是Turbolinks的问题,但我不确定.

这是我的控制器:contacts_controller.rb 摘录

class ContactsController < ApplicationController

  def index
    @q = Contact.ransack(params[:q])
    @contacts = @q.result(distinct: true).order("name asc").paginate(:page => params[:page], :per_page => 2)
    respond_to do |format|
      format.html
      format.js  {render "index", :locals => {:contacts => @contacts}}
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的索引视图index.html.erb

 <%= link_to "New Contact", '#contact-modal', data: {toggle: "modal", target: "#contact-modal" }, class: 'btn btn-info btn-sm'  %>
<%= render 'shared/contact_modal' %>
<div id="search">
  <%= render 'contacts/search' %>
</div>

<div id="results">
  <%= render 'contacts/results', contacts: @contacts %>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的js文件index.js.erb …

javascript ajax search ruby-on-rails coffeescript

10
推荐指数
1
解决办法
692
查看次数

rvm和rbenv在同一台机器上

我传统上在我的个人笔记本电脑上使用rbenv用于我的所有个人项目而没有问题.但是我需要开始使用代码库(rails),我们在所有工作笔记本电脑上使用rvm.有没有办法让rvm和rbenv一起快乐地生活,或者我应该能够在没有rvm的情况下引导应用程序,只需使用rbenv来管理本回购的本地ruby?

ruby ruby-on-rails rvm rbenv

7
推荐指数
1
解决办法
2036
查看次数

Rails Chartkick Gem错误加载图表找不到适配器

我有一个Rails 3.2.14应用程序,我正在使用chartkickgroupdategem来尝试生成一些基本的图表.

当我加载我的视图时,我收到错误: Error Loading Chart: No adapter found

这是我的视图代码的样子:

index.html.erb

<%= line_chart Call.group_by_week(:created_at).count %>

这是我的应用程序布局,包括chartkick和让步chart_js application.html.erb(布局)

 <%= javascript_include_tag "application", "chartkick" %>
 <%= yield :charts_js %>
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么我得到这个错误以及如何解决它?我真的很想开始使用Chartkick生成一些简单的图表.

ruby-on-rails chartkick

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

Ransack在应用程序布局Rails中搜索Ajax

我有一个Rails 4.2应用程序,其中我使用Ransack与Geocoder混合进行搜索.我想在搜索中使用Ajax(remote:true)来避免页面加载和更改URL.

当我在索引视图中实现它时,它工作得很好,但我想将搜索框抽象到应用程序布局文件,因此它可以在站点范围内使用,而不是仅在索引视图上.当我这样做(参见代码示例)我能够搜索得很好,但问题是我似乎无法弄清楚如何获得Ajax/Remote:True工作.这是我的代码:

application.html.erb

  <%= search_form_for(@search, url:"/resources", :method => :get, remote: true) do |f| %>
     <%= text_field_tag :location, params[:location], placeholder: "Houston, TX", class: "input-sm form-control" %>
      <%= f.submit "Find", class:'btn btn-sm btn-info' %>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

application_controller.rb

  before_action :build_search
  private
  def build_search
    if params[:location].present?
        @search = Resource.near(params[:location], 100).search(params[:q])
      else
            @search = Resource.search(params[:q])
      end
  end
Run Code Online (Sandbox Code Playgroud)

资源/ index.js.erb的

$("#mapdisplay").html("<%= escape_javascript render("map") %>");
$("#results").html("<%= escape_javascript render("results") %>");
Run Code Online (Sandbox Code Playgroud)

资源/ index.html.erb

<div id="mapdisplay">
    <%= render 'map' %>
</div>
<div id="results">
    <%= render 'results' %>
</div> …
Run Code Online (Sandbox Code Playgroud)

ajax ransack ruby-on-rails-4

6
推荐指数
0
解决办法
1332
查看次数

Rails在Bootstrap 4模式中执行Javascript

我有一个Rails 5.1应用程序,我使用coffeescript/JS在表单中使用Ajax创建患者记录.使用以下代码可以正常工作:

_form.html.erb

<div class="modal fade patient-modal" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">
  <div class="modal-dialog modal-sm" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
        <h4 class="modal-title" id="mySmallModalLabel">Add Patient</h4>
      </div>
      <div class="modal-body">
        <%= form_for Patient.new do |f| %>
          <div class="form-group">
            <%= f.label :first_name %>
            <%= f.text_field :first_name, class: "form-control" %>
            <%= f.label :last_name %>
            <%= f.text_field :last_name, class: "form-control" %>
            <%= f.label :date_of_birth %>
            <%= f.text_field :date_of_birth, class: "form-control", id: 'patient_dob_modal', placeholder: 'yyyy-mm-dd' %>
            <%= f.label :age %>
            <%= f.text_field :age, …
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails coffeescript bootstrap-modal bootstrap-4

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