小编Suc*_*hem的帖子

如何从字符串转换为对象属性名称?

我试图将字符串值转换为属于对象的属性的名称.例如,在以下代码中,我需要column_array转换为属性名称中的所有字符串值.名字"student_identification","email"等都是我的实际列名称Student表.在真实场景中,column_array将由用户设置(通过勾选复选框).并且new_array将被替换csv,因为我想要的数据进入一个CSV文件.

目前我真的在以下方面苦苦挣扎:

   new_array << r."#{column_array[i]}"
Run Code Online (Sandbox Code Playgroud)

我想"#{column_array[i]}"转为属性名称,以便我可以访问数据.

def exp_tst

  @records =  Student.find(:all, :conditions=> session[:selection_scope],
                                 :order => sort_order('laboratory_id'))

  column_array = ["student_identification", "laboratory_id", "email", "current_status"]

  new_array = Array.new()

  @records.each do |r|

    (0..(column_array.size-1)).each do |i|
       new_array << r."#{column_array[i]}"
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

ruby attributes ruby-on-rails

19
推荐指数
2
解决办法
2万
查看次数

测试使用ActiveRecord的问题/模块

情景 我已经提到了一个叫做的问题Taggable.它是一个允许任何模型支持标记的模块.我已经包含了这种担忧/模块到像模特User,Location,Places,Projects.

我想为这个模块编写测试,但不知道从哪里开始.

问题
1.我可以对此Taggable问题进行隔离测试吗?
在下面的示例中,测试失败,因为测试正在寻找a dummy_class table.我假设它正在这样做因为has_many代码,Taggable因此它期望'DummyClass'是一个ActiveRecord对象.

# /app/models/concerns/taggable.rb
module Taggable
  extend ActiveSupport::Concern

  included do
    has_many :taggings, :as => :taggable, :dependent=> :destroy
    has_many :tags, :through => :taggings
  end

  def tag(name)
    name.strip!
    tag = Tag.find_or_create_by_name(name)
    self.taggings.find_or_create_by_tag_id(tag.id)
  end
end


# /test/models/concerns/taggable_test.rb
require 'test_helpers'

class DummyClass
end

describe Taggable do
  before do
    @dummy = DummyClass.new
    @dummy.extend(Taggable)
  end

  it …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing ruby-on-rails activesupport minitest

14
推荐指数
1
解决办法
5585
查看次数

rspec:raise_error用法以匹配错误消息

我提出错误使用 raise(ConfigurationError.new(msg))

我尝试用rspec测试这个:

expect {
  Base.configuration.username
}.to raise_error(ConfigurationError, message) 
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我该怎么测试呢?目标是匹配message.

ruby rspec

8
推荐指数
3
解决办法
6834
查看次数

XSLT if表达式语法,组合多个表达式

尝试将if语句组合在一起使用<xsl:if test="expression">我希望将多个表达式放在一起的地方,以执行此伪操作的操作顺序:

if (Number != '' and (Name != '' or PreferredName != '')) {// code here}
Run Code Online (Sandbox Code Playgroud)

基本上我想这样做<xsl:if>:

<xsl:if text="Number != '' and (Name != '' or PreferredName != '')">
Run Code Online (Sandbox Code Playgroud)

但我不确定expression语法,我不认为我可以这样做(),因为我没有在任何地方看到它.我无法轻松地在Web上找到表达式语法,它可能是XPath,但我不确定XPath是否支持()组表达式.我不是XSL/XML/XSD的专家'所以我不知道表达式是否甚至是XPath,或者是什么.

我宁愿不做嵌套<xsl:if>如果可能的语句,并希望坚持<xsl:if><xsl:choose>.

我敢肯定这可能是一个简单的答案,但有点困在这里.谢谢.

xml xslt xpath

7
推荐指数
1
解决办法
2万
查看次数

如何修复使用DataTables.net打破容器外部的长列值问题?

当一列具有长值而没有空格时,该表会突破具有设置宽度(或百分比)的任何容器.目前,我需要一个宽度为50%的表格,而长值会将表格从50%宽度的容器中分离出来.

这个jsFiddle简化了我的问题,宽度为70%,我使用的任何自定义CSS都覆盖了典型的DataTables.net CSS(除了视觉样式).

http://jsfiddle.net/mswieboda/8qVh4/

HTML:

<div class="container">
  <table class="grid"></table>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.dataTable {
  width: 100% !important;
  margin: 0;
}
.dataTables_wrapper {
  position: relative;
}
.dataTables_scrollHeadInner {
  width: 100% !important;
}
.container {
  position: relative;
  width: 70%;
  border: 1px solid #f0f;
}
.container .grid {
  position: relative;
  overflow-x: hidden;
}
Run Code Online (Sandbox Code Playgroud)

注意:我意识到我不应该使用 !important,但这是另一天的问题.

请参阅jsFiddle以了解我正在使用的特定JS和DataTables.net选项.

我想用CSS删除/截断长椭圆值.我可能需要这样的东西:

.dataTable tbody td {
  text-overflow: ellipsis;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

对我有用的唯一解决方案是在a divtd设置a max-width/ widthon div,但我不想设置固定宽度,因为我希望使用该sWidth选项从DataTables.net选项中找出它.

我做了一些研究,但还没有提出任何可靠的解决方案.有人有解决方案吗?

javascript css jquery datatables

2
推荐指数
1
解决办法
3062
查看次数

如何在Java Android中延迟基于回合制游戏的方法

在一个简单的纸牌游戏(人类与CPU)中,逻辑有效,但我想延迟计算机的转向.

我尝试过使用Thread.sleep(int milliseconds)哪种方法有效,但它会影响图像的显示顺序.我没有使用游戏循环,我只是在更改卡时动态更新ImageViews.Thread.sleep的问题是所有图像只 Thread.sleep 之后更新, Thread.sleep之前没有只显示人卡.在Thread.sleep之后显示人的卡和计算机的卡.

我像这样使用Thread.sleep:

playPlayerCard(player); // Human first
displayPile(); // Display card pile (ImageView's)

player = nextPlayer(player); // Get's next player in Player mPlayers List<Player>

// Wait for computer to 'Think'
Thread.sleep(500);

playPlayerCard(player); //Computer's turn
displayPile(); // Display card pile (ImageView's)
Run Code Online (Sandbox Code Playgroud)

我使用Thread.sleep()错了吗?有更好/更正确的方法吗?我在线搜索并尝试使用new Thread(),使用但handler.postDelayed(Runnable r, long milliseconds)CountDownTimer没有工作,因为我的变量:playPlayerCard(player);不是最终变量.

我总是遇到延迟动作和在正确时间出现的图像的问题.有什么建议?提前致谢.

java multithreading android delay

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

检查字符串是否包含给定的字符串

例如:a.text名称为"capybara",我需要检查字符串中是否包含字符"ba".

if a.text.contains?("ba")
  # do something
else
  # do something
end
Run Code Online (Sandbox Code Playgroud)

ruby

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