我是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) 我正在尝试更新一个名为的表incode_warrants,并将其设置warn_docket_no为viol_docket_no从incode_violations表中.
我在Postgres 9.3中有以下SQL查询,但是当它触发时我收到以下错误:
Run Code Online (Sandbox Code Playgroud)Error : ERROR: relation "iw" does not exist LINE 1: update iw
我更像是一个活跃记录的人,所以我的原始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) 我有一个Rails 3.2.18应用程序,我正在尝试对模型进行一些条件验证.
在呼叫模型中有两个字段:location_id(与预定义位置列表的关联)和:location_other(可以是某人可以键入字符串的文本字段,或者在这种情况下是地址).
我希望能够做的是在创建对以下位置的调用时使用验证:location_id或:location_other被验证存在.
我已经阅读了Rails验证指南并且有点困惑.希望有人可以通过条件轻松地阐明如何轻松地做到这一点.
validation activerecord ruby-on-rails ruby-on-rails-3 rails-activerecord
我正在我的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) 我有一个范围来查询今天的电话.基于范围,我用它来计算今天的通话量.
我的日期以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提取范围,包括昨天的呼叫(昨天如果用当地时区格式化).
如何在两次之间查询以获得正确的输出?我有点迷失在这里.
我有一个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 …
我传统上在我的个人笔记本电脑上使用rbenv用于我的所有个人项目而没有问题.但是我需要开始使用代码库(rails),我们在所有工作笔记本电脑上使用rvm.有没有办法让rvm和rbenv一起快乐地生活,或者我应该能够在没有rvm的情况下引导应用程序,只需使用rbenv来管理本回购的本地ruby?
我有一个Rails 3.2.14应用程序,我正在使用chartkick和groupdategem来尝试生成一些基本的图表.
当我加载我的视图时,我收到错误:
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生成一些简单的图表.
我有一个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) 我有一个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
activerecord ×2
ajax ×2
coffeescript ×2
javascript ×2
api-design ×1
bootstrap-4 ×1
chartkick ×1
devise ×1
inner-join ×1
postgresql ×1
ransack ×1
rbenv ×1
ruby ×1
rvm ×1
search ×1
sql ×1
sql-update ×1
timezone ×1
validation ×1