现在我有两个成本领域.一个用于美元,一个用于美分.这有效,但有点难看.它也不允许用户输入术语"免费"或"无成本",如果他们想要的话.但是如果我只有一个字段,我可能需要让我的解析器更聪明一些.你怎么看?
在服务器端,我结合美元和美分将它们存储为我的数据库中的小数.主要是为了让我能够快速收集统计数据(成本平均值等).
您认为将成本存储为字符串会更好吗?然后每当我实际使用统计数据或其他目的的成本时,我会在那时将其转换为小数.还是我走在正确的轨道上?
我试着安装ruby-hmac gem
如果我做"宝石列表",我看到它已安装:
...
RedCloth (3.0.4)
ruby-hmac (0.3.2)
ruby-openid (1.1.4)
...
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将它包含在我的Rails项目中时......
config.gem "ruby-hmac"
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Missing these required gems:
ruby-hmac
You're running:
ruby 1.8.6.287 at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
rubygems 1.3.4 at /Users/TAmoyal/.gem/ruby/1.8, /Library/Ruby/Gems/1.8, /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
Run `rake gems:install` to install the missing gems.
Run Code Online (Sandbox Code Playgroud)
所以我看看我的宝石目录......
Macintosh-2:bhr TAmoyal$ ls -al /Library/Ruby/Gems/1.8/gems/
drwxr-xr-x 12 root admin 408 Jun 28 23:14 rake-0.8.7/
drwxr-xr-x 8 root admin 272 Dec 5 00:34 ruby-hmac-0.3.2/
drwxr-xr-x 9 root admin 306 Jun 28 23:35 rubyforge-1.0.3/
Run Code Online (Sandbox Code Playgroud)
权限看起来很好,所以我尝试在同一目录中包含另一个gem:
config.gem 'javan-whenever', :lib => false, :source …Run Code Online (Sandbox Code Playgroud) 我需要在JSON中引入一组ruby对象.我需要通过id在JSON对象中找到该项,所以我认为id最好是每个对象的键.这个结构对我来说最有意义:
{
"1": {"attr1": "val1", "attr2": "val2"},
"2": {"attr1": "val1", "attr2": "val2"},
"3": {"attr1": "val1", "attr2": "val2"}
}
Run Code Online (Sandbox Code Playgroud)
这样我就可以很容易地调用json对象了 console.log(json_obj[id].attr1)
问题是我不太确定如何在ruby中构建它.这是我得到的:
# in ruby
@book_types = []
BookType.all.each do |bt|
@book_types << {bt.id => {:attr => bt.attr}}
end
@book_types = @book_types.to_json
// In JS
var bookTypes = JSON.parse('<%=raw @book_types %>');
Run Code Online (Sandbox Code Playgroud)
2个问题:我如何在ruby中构建它?有没有更好的方法来完成我正在做的事情?
还要注意我在Rails框架上构建它
谢谢!
我有两个型号:Show和Venue.Show有一个场地,而每个场地都属于show.这两个条件在带有has_one&belongs_tostatements的模型文件中定义.但是,我无法通过这样做进入会场show.venue.考虑以下代码,其中s是一个Show实例:
logger.info("*********************")
logger.info("#{s.inspect}")
logger.info("#{Venue.find(s.venue_id)}") # Works
logger.info("#{s.venue}") # Causes a MySQL Error
logger.info("*********************")
Run Code Online (Sandbox Code Playgroud)
我觉得导致MySQL错误的行应该有效.这是错误:
ActiveRecord::StatementInvalid (Mysql::Error: Unknown column 'venues.show_id' in 'where clause': SELECT * FROM `venues` WHERE (`venues`.show_id = 95) LIMIT 1)
Run Code Online (Sandbox Code Playgroud)
我不知道它为什么试图访问venues.show_id.有任何想法吗?
我有一个单例类用于全局访问配置信息.这个名为ConfigurationData的单例类扩展了EventDispatcher.这是一个类(请注意,我保留了一些像变量声明一样的东西来保持这个简短):
/**
* Dispatched when the config file has been loaded.
*/
[Event (name="configurationLoaded", type="flash.events.Event")]
/**
* Dispatched when the config file has been loaded.
*/
[Event (name="configurationLoadFailed", type="flash.events.Event")]
public class ConfigurationData extends EventDispatcher{
// Event name constants.
public static const CONFIGURATION_LOADED:String = "configurationLoaded";
public static const CONFIGURATION_LOAD_FAILED:String = "configurationLoadFailed";
// The singleton instance.
private static var singleton:ConfigurationData;
/**
* Don't call the constructor directly, use getInstance() instead.
*/
public function ConfigurationData(pvt:PrivateClass){
// init
}
/**
* Get the singleton …Run Code Online (Sandbox Code Playgroud) 在我的applicationDidFinishLaunching中,我设置了一个UINavigationController:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
navController = [[UINavigationController alloc] init];
[[navController navigationBar] setFrame:CGRectMake(0.0,0.0,320.0,20.0)];
...
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在尝试使导航控制器的高度为20px.但是,这不起作用.我认为setFrame必须是正确的函数,但我没有在正确的位置调用它.我意识到关于SO的其他问题与我的相似,但我认为如果它响应setFrame,设置navigationBar高度应该是正确的......对吗?
还有,谁知道navigationBar的默认高度?
谢谢!