我的应用不仅有用户,还有管理员和超级管理员.由于所有三个共享相同的属性,我只想使用一个具有附加属性"角色"的表,可以是"user","admin"或"super_admin":
class User < ActiveRecord::Base
# with nickname and password
end
class Admin < User
def power
puts "admin rights"
end
end
class SuperAdmin < Admin
def superpower
puts "I've got the #{power}!"
end
end
Run Code Online (Sandbox Code Playgroud)
现在我想做一些事情SuperAdmin.all
,只得到SuperAdmins.使用default_scope似乎让我在那里:
class SuperAdmin < Admin
default_scope where(["role = ?", "super_admin"])
# ...
end
Run Code Online (Sandbox Code Playgroud)
现在我也将一个default_scope添加到Admin:
class Admin < User
default_scope where(["role = ?", "admin"])
# ...
end
Run Code Online (Sandbox Code Playgroud)
Aaaand ... SuperAdmin.all不再返回任何内容.这是为什么?
我试图在Interface Builder中创建一个自定义的UITableViewCell,并将实际UITableViewCell的File的Owner和Custom Class设置为我的新自定义UITableViewCell类.我会从文件所有者那里挂起IBOutlets并在遇到错误时得到错误:
TVCell *cell = (TVCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:nil options:nil];
for(id currentObject in topLevelObjects)
{
if([currentObject isKindOfClass:[TVCell class]])
{
cell = (TVCell *)currentObject;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
最后我意识到你必须从UITableViewCell对象而不是文件所有者那里连接IBOutlets.为什么是这样?
谢谢
是一个小的垂直字母表,它允许您跳过iOS联系人管理器中的选定字母,某个类型的内置视图,还是自定义视图和委托方法的一些奇怪的混合?
谢谢
我已经看过这个其他问题,但无法让我的选择框正常工作: 绑定下拉列表(选择)列表的初始/默认值
我有以下Game对象:
function Game(visitingTeamDetails, homeTeamDetails, game) {
if (arguments.length > 0) {
this.VisitingTeamDetails = visitingTeamDetails;
this.HomeTeamDetails = homeTeamDetails;
this.GameId = ko.observable(game.GameId);
this.HomeTeamName = ko.observable(game.HomeTeamName);
this.VisitingTeamName = ko.observable(game.VisitingTeamName);
this.SportTypeName = ko.observable(game.SportTypeName);
this.HomeAccountName = ko.observable(game.HomeAccountName);
this.VisitingAccountName = ko.observable(game.VisitingAccountName);
this.GameDateString = ko.observable(game.GameDateString);
this.GameTimeString = ko.observable(game.GameTimeString);
this.AvailableSportTypes = ko.observableArray(game.Sports);
this.sportTypeFunction = function () {
for (sportType in this.AvailableSportTypes()) {
if (this.AvailableSportTypes()[sportType].Name == this.SportTypeName()) {
return this.AvailableSportTypes()[sportType];
}
}
return null;
};
this.SportType = ko.observable(game.SportType);
}
}
Run Code Online (Sandbox Code Playgroud)
SportType是与对象Name
和SportTypeId
.
我有以下模板:
<td …
Run Code Online (Sandbox Code Playgroud) 可能重复:
这是什么意思"bash <<(curl rvm.io/releases/rvm-install-head)"
我正在努力在Mac OS X上安装Ruby on Rails,并且遇到了几个调用此行的教程:
bash < <(curl -s https://rvm.io/install/rvm)
Run Code Online (Sandbox Code Playgroud)
我不知道这bash < <
是什么意思.
这条线做什么?
谢谢
我在rails3/postgreSQL中有以下模型/表:
create_table "admin_reports", :force => true do |t|
t.string "report"
t.decimal "result"
t.string "result_type"
t.datetime "created_at"
t.datetime "updated_at"
end
Run Code Online (Sandbox Code Playgroud)
在生产时,AdminReports.result不存储小数,而是存储哈希:
AdminReport.last
=> #<AdminReport id: 4, report: "dau", result: #<BigDecimal:cbca0f0,'0.8E1',4(8)>, result_type: "percentage", created_at: "2012-02-28 22:05:15", updated_at: "2012-02-28 22:05:15">
Run Code Online (Sandbox Code Playgroud)
我希望看到的地方:
AdminReport.last
=> #<AdminReport id: 4, report: "dau", result: 10.10, result_type: "percentage", created_at: "2012-02-28 22:05:15", updated_at: "2012-02-28 22:05:15">
Run Code Online (Sandbox Code Playgroud)
在rails控制台中,即使我尝试手动设置结果字段,如下所示:
@a = AdminReport.last
@a.result = 8.89
@a.save
Run Code Online (Sandbox Code Playgroud)
它仍然将AdminReport.result显示为BigDecimal哈希.有什么想法在这里发生了什么?
谢谢
我正在研究Rails应用程序并正在更新页面.
该页面有一大堆在css中定义的背景图像.当我刷新页面(cmd+r
在Mac上)时,没有任何改变.当我进入Chrome检查器并取消选中然后重新检查css规则时,图像出现了.此外,如果我打开一个新的私人浏览窗口(cmd+shift+n
),图像都会正确显示.
我遇到了一些奇怪的缓存问题吗?
Chrome:版本21.0.1180.89
Mac OS X:10.8.2
我正在开始一个新的rails 3应用程序,当我运行rake db:create
它请求我的root mysql密码然后错误说:
Mysql2 ::错误:用户'arcsite_mysql'@'localhost'拒绝访问数据库'arcsite_mysql_test':CREATE DATABASE
arcsite_mysql_test
DEFAULT CHARACTER SETutf8
COLLATEutf8_unicode_ci
如果我在命令行登录mysql并运行show databases;
我看到:
arcsite_mysql_development
Run Code Online (Sandbox Code Playgroud)
如果我跑,SHOW GRANTS FOR arcsite_mysql@localhost
我看到这个:
GRANT ALL PRIVILEGES ON `arcsite_mysql_development`.* TO 'arcsite_mysql'@'localhost' WITH GRANT OPTION
Run Code Online (Sandbox Code Playgroud)
我的database.yml:
# MySQL. Versions 4.1 and 5.0 are recommended.
#
# Install the MYSQL driver
# gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
# gem 'mysql2'
#
# And be sure to use new-style password hashing: …
Run Code Online (Sandbox Code Playgroud) 有没有办法在rails中维护/使用POST命令的持久连接?
我想创建一个API,我的应用程序接受来自外部服务的数据流(我正在编写这个外部服务,所以我可以灵活地设计我的设计).速度至关重要.我需要以每秒1000点以上的速度从外部源获取信息.与一些计算机科学家交谈时,人们提出了使用持久连接的想法,这样昂贵的TCP握手只需要执行一次.使用外部服务中的库,然后我将创建多个POST项目,这些项目被推送到我的rails应用程序中,然后逐个处理这些POST项目.
我对rails范例的理解是每个请求(POST,GET,PUT等)都需要一个TCP连接.有没有办法利用一个TCP连接获得多个POST?
我目前正在使用以下内容:
编辑
为了帮助澄清我的目标:
我有一个外部系统,每秒收集1,000个数据点(3个浮点数,一个时间戳和2个整数).我想将这些数据推送到我的Ruby on Rails服务器上.我希望配置正确的系统我可以实时使用HTTP堆栈(收集数据点后,我将其推送到我的rails服务器).我还可以降低传输速率并将数据点组合在一起发送它们.我已经看过使用消息传递队列,但我想看看在转到专门的队列API之前是否可以编写更"标准"的HTTP API.
ios ×2
iphone ×2
uitableview ×2
activerecord ×1
addressbook ×1
bash ×1
caching ×1
cocoa-touch ×1
css ×1
curl ×1
data-binding ×1
http ×1
image ×1
inheritance ×1
keep-alive ×1
knockout.js ×1
macos ×1
mysql ×1
mysql2 ×1
openlayers-3 ×1
post ×1
postgresql ×1
rake ×1
select ×1
stream ×1