Tag: null

为什么Rails在我的表单中没有识别为空?

我正在改造一个Rails 2网站。 现在,我收到一个错误,我认为这是因为一个值被提交为空白而不是.nil。 但是,我试图保持零状态似乎不起作用。 我感谢您提供的任何帮助。 从模型,基于Make blank params [] nil NULL_ATTRS = %w( start_masterlocation_id ) before_save :nil_if_blank protected def nil_if_blank NULL_ATTRS.each { |attr| self[attr] = nil if self[attr].blank? } end 视图 我有jQuery在start_masterlocation_id存在时为这个隐藏字段添加一个值。 我还有jQuery在不存在时删除了field属性。 “start-masterlocation-id-field” %> 最后,这是控制器抛出错误的部分。 这是保存表单(Maptry)的页面的控制器,而不是Newsavedmap的控制器。 我想我必须删除@ newsavedmap.id,@ newsavedmap.mapname和@newavedavedmap.optimize行,因为我要使用表单处理程序,但我不认为这与此错误有关。 调节器 def maptry @itinerary = Itinerary.find(params[:id]) if @itinerary.user_id == current_user.id respond_to do |format| @masterlocation = […]

AuthLogic UserSessions Controller返回Nil

我已经设置了一个新的Rails应用程序并使用Authlogic进行身份validation。 我很高兴CRUD用户,但用户会话似乎有问题。 错误信息: undefined method `create’ for nil:NilClass app/controllers/user_sessions_controller.rb:9:in `create’ 应用程序/模型/ user.rb class User < ActiveRecord::Base acts_as_authentic end 应用程序/控制器/ user_sessions_controller.rb class UserSession < Authlogic::Session::Base end 应用程序/模型/ user_session.rb class UserSessionsController < ApplicationController def new @user_sesssion = UserSession.new end def create @user_sesssion = UserSession.new(params[:user_session]) if @user_session.create flash[:notice] = "Welcome back!" redirect_to root_path else render :new end end […]

rails教程:cookie与记忆令牌不匹配

我正在做Michael Hartl的Rails教程第8章。当我尝试通过存储在浏览器cookie中的remember_token找到用户时,它无法正常工作。 find_by方法返回NIL。 我一直在尝试通过查看存储在浏览器上的记忆令牌cookie并将其与存储在用户数据库中的记忆令牌进行比较来进行调试。 他们不匹配,我不知道为什么。 这是Session Helper的代码。 module SessionsHelper def sign_in(user) remember_token = User.new_remember_token cookies.permanent[:remember_token] = remember_token user.update_attribute(:remember_token, User.encrypt(remember_token)) self.current_user = user end def signed_in? !current_user.nil? end def current_user=(user) @current_user = user end def current_user #remember_token = User.encrypt(cookies[:remember_token]) remember_token = “71e45660fbaa69bad9fb55b912f80122a584f6af” #@current_user ||= User.find_by(remember_token: remember_token) @current_user ||= User.find_by_remember_token(remember_token) end end 我一直在调整它以试图弄清楚发生了什么。 为了调试,我注释掉了正常的行并使用我在数据库中看到的值显式设置了记忆标记 – 然后应用程序正常工作。 当我将存储在浏览器中的cookie的值与存储在数据库中的记忆令牌的值进行比较时,它们不匹配。 […]

carrierwave Excon :: Errors :: SocketError

我已经阅读了几篇与此相关的post和​​解决方案,但我仍然无法理解它仍然会返回“Excon :: Errors :: SocketError at / posts getaddrinfo:nodename也没有提供servname,或者不知道(SocketError)” 这是config / carrierwave.rb CarrierWave.configure do |config| config.fog_credentials = { :provider => ‘AWS’, # required :aws_access_key_id => ‘—-‘, # required :aws_secret_access_key => ‘—-‘, # required :region => ‘eu-west-1’, # optional, defaults to ‘us-east-1’ :host => ‘s3.example.com’, # optional, defaults to nil :endpoint => ‘https://s3.example.com:8080’ # optional, defaults […]

带有expires_in的Rails.cache.fetch只有在新值不为nil时才会过期

我想做一个简单的Rails.cache.fetch并在大约10分钟后过期。 缓存中充满了来自外部API的json数据。 但是,有时无法访问外部API。 因此,当缓存过期并尝试获取新的json数据时,缓存内容将变为无效。 如果fetch_json返回有效数据,我怎样才能使Rails.cache.fetch只对EXPQRE缓存? 但是,如果收到新的有效数据,缓存应在10分钟后过期。 这是我尝试这样做的方式,但它不起作用。 更好的代码突出显示在这个要点: https : //gist.github.com/i42n/6094528 任何提示我如何才能完成这项工作? module ExternalApiHelper require ‘timeout’ require ‘net/http’ def self.fetch_json(url) begin result = Timeout::timeout(2) do # 2 seconds # operation that may cause a timeout uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) return JSON.parse(response.body) end return result rescue # […]

为什么我得到错误nil的未定义方法`name’:使用Ruby on Rails的NilClass?

我认为名称和电子邮件等方法在rails中是默认的吗? 在我的静态页面视图中,在profile.html.erb中,我有: 我输入了static_page_controller def profile @user = User.find_by_remember_token(:remember_token) end 当我转到控制台User.find_by_remember_token(“actualtoken”)。name返回适当的用户名,但是:remember_token没有。 我如何制作:remember_token =登录用户记住令牌? 在我的sessions_helper中,我有 def log_in(user) cookies.permanent[:remember_token] = user.remember_token current_user = user end def logged_in? !current_user.nil? end def current_user=(user) @current_user = user end def current_user @current_user ||= user_from_remember_token end def log_out current_user = nil cookies.delete(:remember_token) end private def user_from_remember_token remember_token = cookies[:remember_token] User.find_by_remember_token(remember_token) unless remember_token.nil? end […]

找到多态关联或无差异的记录

我有一个运行ruby 2.1.2和rails 4.1.1的rails应用程序,在其中我有一个多态关联,如下所示: class Picture < ActiveRecord::Base belongs_to :imageable, polymorphic: true end class Employee < ActiveRecord::Base has_many :pictures, as: :imageable end class Product < ActiveRecord::Base has_many :pictures, as: :imageable end 我希望能够找到属于给定员工或没有关联的“可成像”记录的所有图片。 # These both work fine Picture.where(imageable: Employee.first) # finds all associated with Employee.first Picture.where(imageable: nil) # finds all un-associated Pictures #This does not work […]

未定义的方法`collect’代表nil:NilClass

有人可以帮我解决这个错误吗? post中的NoMethodError #create 显示C:/Users/User/Documents/website/app/views/posts/_form.html.erb,其中第24行引发: 未定义的方法`collect’代表nil:NilClass 提取的来源(第24行): 23: 24: 模板包含的跟踪:app / views / posts / new.html.erb 我的_form.html.erb { :multipart => true }) do |f| %> prohibited this post from being saved: 我的控制器: class PostsController < ApplicationController # GET /posts # GET /posts.json def index @posts = Post.all respond_to do |format| format.html # index.html.erb format.json { render […]

如何检查params 是否为零?

我尝试了很多人的代码 – 如何测试rails中是否存在参数 ,但它不起作用(): if ( params.has_key?([:start_date]) && params.has_key?([:end_date]) ) 我想,那是因为复杂的参数,如果我写这个: if ( params.has_key?([:report][:start_date]) && params.has_key?([:report][:end_date]) ) 给我错误 can’t convert Symbol into Integer 这也行不通: if ( params[:report][:start_date] && params[:report][:end_date] ) 给我错误: undefined method `[]’ for nil:NilClass 它总是进入其他声明。 这是我的参数: report: start_date: 01/08/2012 end_date: 10/08/2012 有人能帮我吗 ?

条件为零值的Rails

我发现使用符号的地方:my_id => nil并使用旧的学校一个? 是不同的。 谁能解释我为什么? MyTable.where(“my_id = ? “, nil).first SELECT `my_tables`.* FROM `my_tables` WHERE (my_id = NULL ) LIMIT 1 没有得到任何数据 MyTable.where(:my_id => nil).first SELECT `my_tables`.* FROM `my_tables` WHERE (`my_tables`.`my_id` IS NULL) LIMIT 1 获取my_id为null的数据。 在轨道中使用的最佳做法是什么? 我想我没有说清楚我的问题。 在我的rails应用程序中,请求参数为nil。 现有的编码是MyTable.where(:my_id => params [:id])。首先在表中,有很多记录,其中my_id为null。 因此,表中的第一条记录没有意识到。 首先,是的,这是表中不清洁数据的问题。 解决这个问题。 我找到两个解决方案 解决方案1 if params[:id].present? MyTable.where(:my_id => params[:id]).first end 解决方案2 […]