我正在开发一个Rails应用程序,默认情况下会将用户帐户设置为他们选择的子域.作为一种选择,他们可以将自己的完整域名映射到他们的帐户.
到目前为止,这就是我设置的方式.我正在使用subdomain-fu来为路由提供支持:
# routes.rb
map.with_options :conditions => {:subdomain => true} do |app|
app.resources # User's application routes are all mapped here
end
map.with_options :conditions => {:subdomain => false} do |www|
www.resources # Public-facing sales website routes are mapped here
end
Run Code Online (Sandbox Code Playgroud)
before_filter :set_current_account
def set_current_account
if request.host.ends_with? current_domain
# via subdomain
@current_club = Club.find_by_subdomain(current_subdomain)
else
# via full domain
@current_club = Club.find_by_mapped_domain(request.host)
end
end
Run Code Online (Sandbox Code Playgroud)
我还没有完成构建它的过程,但我已经看到我将遇到路由问题.如果request.host是一些random.com域,那么subdomain-fu不会路由相应的路由?
我假设这不是一个不寻常的问题,所以任何人都可以分享他们如何处理这个问题,或者我如何配置我的路线来做我需要的东西?
比方说,我有一个允许用户上传图像和文档的Web应用程序,我的应用程序将所有这些资产存储在S3上,有没有办法监控资源使用情况的PER用户帐户?
例如,如果用户帐户的存储空间限制为1GB,我该如何监控任何个人使用的限额?
此外(但这对我来说不是问题)如果该用户帐户也有5GB带宽限制,是否有可用的工具可以监控他们的S3带宽?
将Canvas元素转换为链接的最佳方法是什么 - 我指的是整个画布元素,而不仅仅是图像的一部分.
我尝试过一个显而易见的事情 - 将元素包装在A元素中 - 但在IE9中查找问题.
以此标记为例:
<a href="#link">
<canvas width="100" height="100">
//fallback
</canvas>
</a>
Run Code Online (Sandbox Code Playgroud)
使用CSS我已经设置链接背景颜色在悬停时更改,并且我发现在大多数现代画布支持浏览器中它按预期工作 - 你悬停,背景改变颜色,你点击链接,链接被遵循.
但是,在IE9中,当鼠标悬停在元素上时,它无法识别出它是一个链接 - 没有悬停效果,没有光标变为指针,单击会立即执行.
有趣的是,如果我向A元素添加1像素边框,并将鼠标悬停在1像素边框上,IE9会识别链接,之后您可以将鼠标移到画布上并保持其悬停状态并正常工作作为一个链接.
这几乎就像画布覆盖链接一样,因此浏览器无法识别链接,只能识别画布元素 - 如果这有意义的话?
所以,我真的只想确定一下:
谢谢
好的,所以我在下面的答案都是正确的,但不幸的是,我的实现也没有.我的标记比上面的简化示例复杂得多,所以我猜测实际上还有其他东西正在引起问题 - 本机悬停事件和附带JavaScript的事件 - 没有什么工作.
但是,我想出了一个解决问题的黑客.我给链接一个RGBA背景颜色,不透明度为零.一旦那样,事情就好了.奇怪我知道,但修复:)
我认为这是一个非常简单的问题(着名的遗言)......
我有一个Category模型has_and_belongs_to_many Events.我想构建一个简单而有效的查询,查找具有1个或多个事件的所有类别.(使用Rails 3)
我确定我在这里有一个愚蠢的时刻 - 任何帮助赞赏:)
我正在测试一个带有Cucumber/Capybara组合的Rails 3应用程序.我也试图使用Selenium来测试一些特定于JavaScript的场景,但遇到了我不明白的奇怪困难.
我对Cucumber/Capybara的经验非常低,我对Selenium的经验是零.
这是场景:
Scenario: Browsing events
Given many events exist
And I am on the events page
Then I should see a list of 15 events
When I follow the first event
Then I should be on the event page
And I should see a google map
And I should see the event details
Run Code Online (Sandbox Code Playgroud)
当该场景在RackTest下运行时,它会一直传递到Google Map步骤,此时它会因为没有JavaScript而失败.这是预料之中的.
当我使用默认的JavaScript驱动程序(Selenium)运行测试时,它在第3步失败(我应该看到15个事件的列表).当我观察浏览器窗口时,实际上事件列表根本不包含任何事件 - 几乎就像它们在数据库中不存在一样.
顺便提一下,第一步(存在许多事件),使用FactoryGirl创建一系列事件.
因为这对我来说都很新鲜,我想知道我是否被一个典型的陷阱所困扰?除了标准安装之外,我没有进行任何配置更改rails g cucumber:install.此外,如果相关,我正在使用OSX.
谢谢
我试图确定一个多维数组中的元素是否存在于另一个类似结构的数组中.
suspects = [['Rod', 100], ['Jane', 75], ['Freddy', 125]]
criminals = [['Bill', 75], ['Ted', 50], ['Rod', 75]]
Run Code Online (Sandbox Code Playgroud)
我正在寻找的回应是真是假.在上面的例子中,响应是真的,因为Rod存在于两个数组中.第二层数组中的整数值没有方位.
我如何用典型的类似Ruby的简洁性来编写这样的测试?
我有一个数组,为了论证,看起来像这样:
a = [[1,100], [2,200], [3,300], [2,300]]
Run Code Online (Sandbox Code Playgroud)
在这四个子数组中,我想合并任何第一个元素是重复的地方.所以在上面的例子中我想合并第二和第四个子阵列.但是,需要注意的是,匹配子阵列中的第二个元素不同,我想保持较高的值.
所以,我希望看到这个结果:
a = [[1,100], [3,300], [2,300]]
Run Code Online (Sandbox Code Playgroud)
这个小难题比我的Ruby技能略高,所以我转向社区寻求帮助.任何有关如何解决这个问题的指导都非常感谢.
谢谢
ruby ×5
arrays ×2
activerecord ×1
amazon-s3 ×1
associations ×1
canvas ×1
capybara ×1
cucumber ×1
html ×1
html5 ×1
intersection ×1
javascript ×1
merge ×1
routing ×1
selenium ×1
subdomain ×1
testing ×1