Tag: null

Rails:添加迁移以添加数组(默认为空)

我正在尝试将一个名为share的列添加到我的一个资源中。 这个想法是用户可以上传文档并与其他(特定)用户共享,并且该数组包含用户想要与之共享的电子邮件。 我尝试使用代码添加迁移 class AddShareToDocuments [] end end 但是当我在命令提示符下打开rails console时,它表示share:nil和user.document.share.class是NilClass。 通过键入在rails控制台沙箱中创建一个新数组 newarray = [] 说newarray.class是Array。 谁能发现我做错了什么?

CartsController中的NoMethodError#destroy – 使用Rails进行敏捷Web开发4

我正在学习使用Rails 4的敏捷Web开发书之后的Rails,我遇到了这个错误: NoMethodError in CartsController#destroy undefined method `name’ for nil:NilClass 这是Cart控制器的动作Destroy。 @cart.destroy if @cart.id == session[:cart_id] ,错误信息引用@cart.destroy if @cart.id == session[:cart_id]行: # DELETE /carts/1 # DELETE /carts/1.json def destroy @cart.destroy if @cart.id == session[:cart_id] session[:cart_id] = nil respond_to do |format| format.html { redirect_to store_url, notice: ‘Your cart is currently empty’} format.json { head :no_content } […]

Ruby on Rails:params是零。 未定义的方法`’为nil:NilClass

我试图访问我所做的搜索页面时收到错误。 问题似乎是我试图在没有任何空白时删除空白。 我的搜索function有效,但是当technols为零时我无法处理这个案例。 这是我的错误: NoMethodError in ProjectsController#search undefined method `[]’ for nil:NilClass 在我的项目控制器中,第26行: tech_ids = params[“technols”][“id”].reject(&:blank?). 这是我的搜索操作: def search tech_ids = params[“technols”][“id”].reject(&:blank?) @search = params[:client], params[:industry], params[:role], tech_ids, params[:business_div], params[:project_owner], params[:status], params[:start_date_dd], params[:start_date_A], params[:start_date_B], params[:keywords] @project_search = Project.search(*@search).order(sort_column + ‘ ‘ + sort_direction).paginated_for_index(per_page, page) @search_performed = !@search.reject! { |c| c.blank? }.empty? @project = Project.new(params[:project]) @all_technols […]

检查nil警告意外的零

我有以下检查nil: client = !deal[‘deal’][‘party’][‘party’].nil? ? deal[‘deal’][‘party’][‘party’][‘company_id’] : “” 但我仍然得到: 当你没想到它时,你有一个零对象! 您可能期望ActiveRecord :: Base的实例。 在评估nil时发生错误。[] 我怎么能阻止这个?

什么是Ruby2.3之前的安全导航操作符(`&.`)?

我可以找到的关于Ruby的新安全导航操作符( &. )的每个问题的答案错误地声明obj&.foo等同于obj && obj.foo 。 很容易certificate这种等价是不正确的: obj = false obj && obj.foo # => false obj&.foo # => NoMethodError: undefined method `foo’ for false:FalseClass 此外,存在多重评估的问题。 用具有副作用的表达式替换obj表明副作用仅在&&表达式中加倍: def inc() @x += 1 end @x = 0 inc && inc.itself # => 2 @x = 0 inc&.itself # => 1 什么是最简洁的2.3之前的obj&.foo避免了这些问题?

在错误输出之前,如何检查nilClass的未定义方法?

我目前正在使用以下内容: 20: Status: 但是,我仍然收到以下错误: ActionView::TemplateError (undefined method `status’ for nil:NilClass) on line # 20 of app/views/contacts/show.html.erb: 有没有更好的方法来检查? 这似乎是一个常见的问题 – 它在开发中运行良好,但我没有在生产中找到它….

溅上哈希

哈希上的splat将其转换为数组。 [*{foo: :bar}] # => [[:foo, :bar]] 是否有一些隐藏的机制(如隐式类转换)在这里,或者它是一个内置的原始function? 除了一个数组,在Ruby 1.9下使用splat运算符消失/改变的唯一内容是nil和hash吗?

为什么我的所有看跌回报=>为零?

我知道这可能看起来像一个非常简单的问题,但是我真的困扰我,我的投注继续产生“=>零”,我搜索答案却找不到答案。 谢谢。 put’blash’* 4 blink blink blink blink => nil

零|| 假和假|| 在ruby中没有

nil || false nil || false返回false和false || nil false || nil返回nil 。 有没有人对此有解释?

Nils和方法链接

我只是闯入ruby世界,我可以伸出援助之手。 假设b nil 。 我想以下代码返回nil而不是“NoMethodError:undefined method” abc(“d”).e 我尝试的第一件事就是重载NilClass的missing_method来简单地返回一个nil。 这是我想要的行为,除了我不想成为这种侵扰。 如果我可以这样做,我会喜欢它 SafeNils.abc(“d”).e 所以它就像是一种干净的方式来局部地重载NilClass的行为。 我很想听到一些想法或很多资源来挖掘这个。 只要它相当干净,我也对其他方法持开放态度。 非常感谢你。