小编Rya*_*igg的帖子

Rails中的默认日期格式(需要它是ddmmyyyy)

我一整天都在使用rails表格,我只是随机测试它并尝试了日期25/12/2009,它出现了一个巨大的错误.

就在这时我意识到导轨设置为美国日期模式(mm/dd/yyyy)而不是英国风格:dd/mm/yyyy.

如何设置rails以自动处理dd/mm/yyyy格式的所有日期?

ruby-on-rails

13
推荐指数
3
解决办法
1万
查看次数

activerecord如何知道执行插入或更新?

也许一些红宝石专家可以在调用save()时了解activerecord如何知道插入或更新.它背后的逻辑是什么?它检查主键是否为空或其他什么,如果是,是否插入,如果不是更新?

ruby-on-rails

13
推荐指数
1
解决办法
7942
查看次数

红宝石面试问题

我在之前的一次采访中得到了这个问题而无法做到,任何想法?

  1. 这是做什么的:

    `$=`;$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$",$;,$^,$#,$~,$*,$:,@%)=( 
    $!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++; 
    $_++;$_++;($_,$\,$,)=($~.$"."$;$/$%[$?]$_$\$,$:$%[$?]",$"&$~,$#,);$,++ 
    ;$,++;$^|=$";`$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=` 
    
    Run Code Online (Sandbox Code Playgroud)

ruby perl

13
推荐指数
2
解决办法
973
查看次数

查找没有关联记录的所有记录

我有一个球队桌和一个球员桌,我想找到所有没有球员的球队.玩家表通过team_id列关联.我正在使用Ruby on Rails,所以我有一个Team和一个Player模型.

sql ruby-on-rails

12
推荐指数
1
解决办法
2972
查看次数

实施帐户范围

目前在我的应用程序中,我有项目和用户的概念.现在我想为这些实现一个帐户范围,以便项目和用户都属于一个帐户,而不是特别没有.通过这样做,我想像我这样的范围:

 scope ":account_id" do
   resources :projects
   ...
 end
Run Code Online (Sandbox Code Playgroud)

但是,通过scope使用命名参数实现路由,这会更改路由助手的执行方式,以便project_path路由助手现在需要两个参数,一个用于account_id参数,另一个用于id参数,如下所示:

  project_path(current_account, project)
Run Code Online (Sandbox Code Playgroud)

这个微小的 scope变化要求我在控制器和视图中对应用程序进行大量更改,以便我使用这些路径助手.

当然,当然,有一个干净的方法可以做到这一点,而无需更改应用程序中的每个路由助手?

routes ruby-on-rails ruby-on-rails-3

12
推荐指数
1
解决办法
1140
查看次数

在Spree结帐流程中添加一个步骤

我正在尝试为我的Spree 1.2商店添加一个额外的步骤,这将允许客户创建订阅.我已插入步骤,并呈现正确的视图,但当用户单击"保存并继续"时,将呈现下一步,但实际上并未保存任何内容.

我知道我需要添加一个state_callback,但我不知道如何做到这一点并且Spree文档非常缺乏(大概是因为它很新)

目前我的扩展中有以下内容:

车型/大礼包/ order_decorator.rb

Spree::Order.class_eval do
  belongs_to :subscription

  accepts_nested_attributes_for :subscription

  # This doesn't appear to be called
  Spree::Order.state_machine.after_transition :from => :subscription,
                                              :do => :valid_subs?

  checkout_flow do
    go_to_state :address
    go_to_state :subscription
    go_to_state :payment, :if => lambda { |order| order.payment_required? }
    go_to_state :confirm, :if => lambda { |order| order.confirmation_required? }
    go_to_state :complete
    remove_transition :from => :delivery, :to => :confirm
  end
end
Run Code Online (Sandbox Code Playgroud)

不完全确定accepts_nested_attributes是必要的,但到目前为止我的开发方法一直是试验和错误,所以它最终停留在那里.

在models/subscription.rb中

class Subscription < ActiveRecord::Base

  attr_accessible :start_date, :frequency

  belongs_to :user 
  has_many :orders
  has_many :products

  validates :start_date, :frequency, :presence …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails spree

12
推荐指数
1
解决办法
2621
查看次数

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

Ruby file_get_contents等价

我需要在我的rails程序中使用它,所以我可以获取图像内容然后base64它.我知道如何base64它但我只是不知道如何获得图像.谁知道怎么样?

ruby-on-rails image

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

如何从初始化程序扩展类并在开发环境中重新加载?

我通过包含一个模块来扩展一个类(在插件中),这是在初始化器中完成的.

require 'qwerty/core/user'
User.send :include, Qwerty::Core::Extensions::User
Run Code Online (Sandbox Code Playgroud)

但是在开发之前,每个请求(以及在控制台中调用reload!之后)都会重新加载所有模型,但由于初始化程序不会再次运行,因此不包含该模块.留下"缺少部件"的模型.

因为模型是在插件中,所以直接在类中包含代码似乎是明智的,这是通常的方法.

现在我只是添加了一个before_filter,它包含了在开发环境中的模块.但我已经复制/粘贴并在初始化程序和应用程序控制器中有重复的代码.

  # Class extensions in initalizers are over-writtern each request
  def development_loading
    if RAILS_ENV == 'development'      
      User.send :include, Qwerty::Core::Extensions::User
    end
  end
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

作为旁注,插件是我的,所以我可以添加代码,但模块中保存的扩展可能并不总是存在...

ruby ruby-on-rails

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

Rails/ActiveRecord:检测列是否为关联

假设我正在抽象代码,并且循环遍历对象x的列名,那么检测列是否为关联的最佳方法是什么?

我知道我可以做到这一点,但我想知道是否有更好的方法:

@user = User.first
  @user.attributes.keys.each do |column|
    if column[-3..-1] == "_id" && @user.respond_to?(column[0..-4].to_sym)
      puts "#{column} is an association / relation."
    else
      puts "#{column} is not an assocation / relation."
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

任何内置的Rails方法或助手来检测关联?上面的代码既不漂亮,也不是万无一失.谢谢!

activerecord ruby-on-rails

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