小编Mat*_*ins的帖子

首先对数组的特定项进行排序

我有一个看起来像这样的ruby数组:

my_array = ['mushroom', 'beef', 'fish', 'chicken', 'tofu', 'lamb']
Run Code Online (Sandbox Code Playgroud)

我想对数组进行排序,以便'chicken'和'beef'是前两项,然后其余项按字母顺序排序.我该怎么做呢?

ruby arrays sorting ruby-on-rails

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

在CursorAdapter中连接多个记录

我正在尝试构建一个ListView,它代表一个食谱列表.我得到了使用a SimpleCursorAdapter来实现这一目标的概念.

但是,除了显示每个项目的配方图像和标题之外,我还想显示与配方相关的逗号分隔的成分串.鉴于游标仅适用于一个表(或视图),我不太清楚如何处理这个问题.

相关表格/栏目如下:

recipes (
  _id integer primary key,
  name text not null
)

ingredients (
  _id integer primary key,
  name text not null
)

recipes_ingredients (
  _id integer primary key,
  recipe_id integer not null,
  ingredient_id integer not null
)
Run Code Online (Sandbox Code Playgroud)

编辑:关于这个问题的前两条评论让我相信没有足够的信息可以解释为什么我认为简单的JOIN是不够的.鉴于表结构,配方可以有多种成分,而不仅仅是一种.这意味着如果我尝试为单个食谱执行连接,我将最终得到如下内容:

SELECT r.name AS recipe, i.name AS ingredient
FROM recipes r
INNER JOIN recipes_ingredients ri ON ri.recipe_id=r._id
INNER JOIN ingredients i ON ri.ingredient_id=i._id;

 recipe           | ingredient
------------------+---------------------
 Chocolate Milk   | milk
 Chocolate Milk   | chocolate …
Run Code Online (Sandbox Code Playgroud)

android join cursor adapter android-cursoradapter

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

Java:我可以要求子类定义属性值吗?

我有一个许多类扩展的抽象基类。我希望所有这些类为最初在基类中定义的特定属性定义唯一值(类似于serialVersionUID在继承自 的类中未定义时导致警告的属性Serializable)。

有没有办法在我的抽象基类中声明一个没有值的属性,但需要所有扩展类为其定义一个值?

请注意,该值不必与每个单独的实例相关联,即:它可以定义为static

编辑:我想我还应该问一个更基本的问题,因为答案千差万别,Java 如何实现serialVersionUID(就其签名而言),以便我的 IDE 在未定义时发出警告?

java inheritance guid properties class

5
推荐指数
1
解决办法
2755
查看次数

将轨道2发电机转换为轨道3?

将轨道2发电机转换为轨道3有多困难?我一直在寻找有用的插件,但后来发现生成器只用于rails 2.我意识到它只是一个方便,但是如果将生成器迁移到rails 3就像调整生成器代码中的几行一样简单,我会只需这样做(并将工作提交给github以供将来的用户使用).

这是我一直在考虑使用的一个这样的发生器,例如(来自反馈)

require File.expand_path(File.dirname(__FILE__) + "/lib/insert_routes.rb")

class FeedbackFormGenerator < Rails::Generator::Base

  attr_accessor :name, 
    :model_class_name,
    :controller_class_name,
    :helper_class_name,
    :mailer_class_name


  def initialize(runtime_args, runtime_options = {})
    super
    @name = (runtime_args[0] || "feedback").downcase
    @model_class_name = name.classify
    @mailer_class_name = "#{@model_class_name}Mailer"
    @controller_class_name = "#{@model_class_name.pluralize}Controller"
    @helper_class_name = "#{@model_class_name.pluralize}Helper"
    #@js_framework = (runtime_options[''])

  end

  def manifest
    record do |m|

      puts "hello"
      add_model(m)
      add_mailer(m)
      add_controller(m)
      add_helper(m)
      add_views(m)
      add_routes(m)
      add_unit_test(m)
      add_functional_test(m)
      add_stylesheet(m)
      add_javascript(m)
      add_images(m)
    end
  end


  def add_stylesheet(m)
    m.directory 'public/stylesheets'
    m.file 'feedback.css', 'public/stylesheets/feedback.css'

  end

  def add_javascript(m)
    m.directory 'public/javascripts'
    file_name …
Run Code Online (Sandbox Code Playgroud)

code-generation ruby-on-rails generator ruby-on-rails-3 rails-3-upgrade

5
推荐指数
1
解决办法
819
查看次数

不能使用android spinner drawable?

我正在尝试使用Android的spinner drawables之一(spinner_black_16,spinner_black_20,spinner_black_48或spinner_black_76),如本页所示.我的项目使用SDK 2.1,因此我将其更新为2.2,因为该页面状态是包含这些内容的SDK版本.不幸的是,android.R.drawable.spinner_black_xx似乎都没有定义.

这些drawables不适合开发人员使用吗?我似乎能够访问它们的唯一方法是通过以下复杂的方法:

final Drawable spinner = new ProgressBar(context).getIndeterminateDrawable();
Run Code Online (Sandbox Code Playgroud)

不幸的是,这为我提供了白色旋转器,而不是黑色旋转器.

android drawable android-widget android-2.2-froyo

5
推荐指数
1
解决办法
3983
查看次数

从Rails 3.1引擎中访问主应用程序的CanCan规则

我正在尝试使用Forem gem,恰好使用CanCan授权框架以及我的主要应用程序.主应用程序和Rails引擎都有自己的ability.rb文件.

当我尝试进行一些授权检查时,问题会出现在布局中:

    <% if can? :update, User %>
        <%= link_to_current_user :content_method => :login %>.
    <% else %>
Run Code Online (Sandbox Code Playgroud)

当我在引擎上使用布局文件时,它会查询自己的ability.rb文件以进行授权.当然,我的主要应用程序没有规则,因此授权失败时不应该.有什么方法可以强迫它去"主要"CanCan吗?

谢谢.

ruby ruby-on-rails cancan ruby-on-rails-3

5
推荐指数
1
解决办法
924
查看次数

我在哪里放置resque-retry故障后端代码?

resque重试执行时,宝石的README讨论改变失败的后端实现.

MultipleWithRetrySuppression 是一个多重故障后端,具有重试抑制功能.

这是一个使用Redis故障后端的示例:

require 'resque-retry'
require 'resque/failure/redis'

# require your jobs & application code.

Resque::Failure::MultipleWithRetrySuppression.classes = [Resque::Failure::Redis]
Resque::Failure.backend = Resque::Failure::MultipleWithRetrySuppression
Run Code Online (Sandbox Code Playgroud)

如果作业失败,但可以并且将重试,则失败详细信息将不会记录在Redis失败队列中(通过resque-web可见).

如果作业失败,但不能或不会重试,则失败将记录在Redis失败的队列中,就像正常失败(没有重试)那样.

我不确定我的Rails应用程序中的代码应该去哪里.我应该将它放入任何随机初始化文件中,例如config/initializers/resque.rb?或者我的应用程序中还有其他地方应该去哪里?文件不清楚.

ruby-on-rails resque ruby-on-rails-3 resque-retry

5
推荐指数
1
解决办法
1013
查看次数

Rails中的类实例变量应该在互斥锁中设置吗?

假设我的Rails项目中有一个设置实例变量的Ruby类.

class Something
  def self.objects
    @objects ||= begin
      # some logic that builds an array, which is ultimately stored in @objects
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

有可能@objects可以设置多次吗?是否有可能在一个请求期间,在begin/ end上面执行代码时,可以在第二个请求期间调用此方法?我想这实际上归结为Rails服务器实例如何分叉的问题.

我应该使用Mutex或线程同步吗?例如:

class Something
  def self.objects
    return @objects if @objects

    Thread.exclusive do
      @objects ||= begin
        # some logic that builds an array, which is ultimately stored in @objects
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby synchronization ruby-on-rails ruby-on-rails-3

5
推荐指数
2
解决办法
1788
查看次数

对象#方法和动态响应者

我有一个Ruby对象(特别是一个ActiveRecord对象)User.它响应像find_by_id,find_by_auth_token等等方法.但是,这些不是通过def或定义的方法define_method.相反,它们是通过处理的动态方法method_missing.

我想通过以下方式获得对这些方法之一的引用Object#method:

User.method(:find_by_auth_token)
Run Code Online (Sandbox Code Playgroud)

虽然看起来不像这样.我提出的最佳解决方案是:

proc { |token| User.find_by_auth_token(token) }
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以使用这样的包装方法?我真的无法Object#method用于动态方法吗?

ruby method-missing

5
推荐指数
1
解决办法
95
查看次数

如何使Android应用程序自动配置调试与发布值?

我正在开发Android应用程序,特别是使用Facebook Android SDK的应用程序.在开发模式中,我正在使用一个带有一个ID的测试Facebook应用程序.但是,在发布模式下,该应用程序将使用具有不同ID的第二个Facebook应用程序.

我想知道大多数Android(或Java可能是一个适当的知识领域)开发人员如何让他们的应用程序自动构建调试与发布值.在构建之前,理想的解决方案不涉及手动开关(例如:切换public static final DEBUG = false;true).

java environment android release

4
推荐指数
3
解决办法
4296
查看次数