在Rails 2.x中,您可以使用验证来确保您具有如下所示的唯一组合值:
validates_uniqueness_of :husband, :scope => :wife
Run Code Online (Sandbox Code Playgroud)
在相应的迁移中,它可能如下所示:
add_index :family, [:husband, :wife], :unique => true
Run Code Online (Sandbox Code Playgroud)
这将确保丈夫/妻子组合在数据库中是唯一的.现在,在Rails 3中,验证语法发生了变化,范围属性似乎消失了.它现在看起来像:
validates :husband, :presence => true
Run Code Online (Sandbox Code Playgroud)
知道如何在Rails 3中实现组合验证吗?Rails 2.x验证仍然可以在Rails 3中使用,所以我仍然可以使用第一个示例,但它看起来很"旧",有更好的方法吗?
validation ruby-on-rails database-integrity validates-uniqueness-of ruby-on-rails-3
我正在为我的Rails 3应用程序编写一些RSpec测试,并尝试从Webrat切换到Capybara.到目前为止这么好,但应用程序使用HTTP基本身份验证来授权我的管理员用户,任何想法如何与Capybara测试?
这是我目前的Webrat步骤:
it 'should authenticate for admin' do
basic_auth('user', 'secret')
visit '/admin'
response.status.should eql 200
response.status.should_not eql 401
end
Run Code Online (Sandbox Code Playgroud)
我如何与Capybara一起做这个?谢谢!
我知道如何更改Web服务器中的MIME类型.我使用它来确保浏览器下载我的.scrpt文件而不是打开纯文本版本.到目前为止这么好但是有可能通过链接做同样的事情吗?我想链接到GitHub上的文件,但这将打开为纯文本文件.我可以在链接中添加"MIME类型属性"以告诉浏览器下载文件吗?
这是我想看到的:
<a mimetype="application/octet-stream" href="http://gist.github.com/raw/279094/39d5a2c1037288d5ee0ba1a17dca9edb368bbe42/RepairiPhotoDates.scpt">download</a>
Run Code Online (Sandbox Code Playgroud) 我在Rails中有一个更概念性的问题......或Ruby:
最好在需要它的方法之前调用require,在Rails启动时将我的需要分组在类的开头或初始化器的某个地方?
从性能的角度来看是否重要?从可读性的角度来看?如果我使用Rails 3会有所不同吗?
谢谢!
我是一个Backbone.js n00b,并试图绕过它.我知道如何使用视图和内置的underscore.js模板引擎渲染模型.现在我正在尝试渲染一个集合,这就是我被卡住的地方.这里没有服务器,所以我不是远程获取任何东西,只是一个带有一些JavaScript的简单HTML页面.
ContinentModel = Backbone.Model.extend({});
ContinentsCollection = Backbone.Collection.extend({
model: ContinentModel,
initialize: function () {
this.continentsView = new ContinentsView;
this.bind("reset", this.continentsView.render);
}
});
ContinentsView = Backbone.View.extend({
el: '#continents',
template: _.template($('#continents-template').html()),
render: function() {
var renderedContent = this.template(this.collection.toJSON());
$(this.el).html(renderedContent);
return this;
}
});
$(function() {
var continentsCollection = new ContinentsCollection();
continentsCollection.reset([{name: "Asia"}, {name: "Africa"}]);
});
Run Code Online (Sandbox Code Playgroud)
它打破了视图中的模板属性行,但我不确定这是我需要查看的位置.我应该渲染一个集合,还是我完全忽略了这一点(也许集合只是将对象分组,我不应该把它看成可以渲染的列表)?
谢谢你的帮助......
我使用Twitter Bootstrap(不重要但它是第三方 CSS文件).因为它是第三方CSS"库",它应该进入/vendor/assets/stylesheets.到现在为止还挺好.
现在,我想在生产中使用Rails 3.1(.1)资产管道连接一个application.css中的所有CSS,这就是我遇到的问题.
当我运行rake assets:precompile它时,就像宣传的一样.Rake任务在public/assets带有摘要的所有文件夹中创建一些application.css文件.问题是这个文件只包含我的CSS文件中的CSS,/app/assets/stylesheets并完全忽略了我的供应商资产文件夹中的CSS .
有谁知道我在这里想念的内容以及如何告诉Rails将供应商样式表与应用程序一起连接起来?此外,仅包括:
<%= stylesheet_link_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
在视图中(因为我希望最终所有内容都在一个文件中)或者我应该包含每个CSS文件?
我想在我的Rails 2.3.10应用程序中为每个 URL 添加一个参数.我玩了default_url_options但我希望参数在URL中可见.就像是:
http://<server>/posts?token=XYZ
Run Code Online (Sandbox Code Playgroud)
我正在构建一个支持跟踪系统,我希望人们可以共享该链接,并能够在有人点击它时跟踪谁的链接被使用(为分享该链接的人提供点数).有关如何在应用程序中使用的每个 URL中添加可见参数的任何提示?
谢谢!
有没有办法获得当前工作的重试次数?
x重试后,我希望工作停止,而不是崩溃.我想问一下perform方法中的重试次数,所以如果重试次数等于x,我可以简单地返回.
def perform(args)
return if retry_count > 5
...
end
Run Code Online (Sandbox Code Playgroud)
使用Sidekiq 2.12.
我(不是OP)有同样的问题,但原因不同.如果正在重试该作业,我想进行额外的健全性检查以确保需要该作业,并且如果不再预期成功则退出重试,因为在排队之后外部发生了更改.
那么,有没有办法获得当前工作的重试次数?目前的答案只是建议你可以绕过需要的方式,或者可以从工作之外获得它.
我正在使用HTML 5本地存储API来存储用户的访问令牌.然后,请求会附加此令牌以访问我的服务器端API.我想知道我是否需要命名我使用的键.浏览器是否会处理此问题,还是需要将密钥称为"my-awesome-app-token"?我注意到Twitter为一些搜索参数做了这个.
顺便说一句,我知道将令牌存储在那里是不安全的,但安全性在这里并不重要,问题是关于命名空间键.
谢谢!
我正在使用rubyist-aasm状态机来处理我的Event对象中的不同状态(事件初始化,事件讨论,事件发布等).我添加了防护装置,以防止在某些条件得不到满足时改变状态.
这一切都很好但是当状态变化被警卫拒绝时它没有显示任何错误.知道如何才能看到状态并没有改变?我可以手动检查状态,但这听起来像一个丑陋的解决方案.
aasm_state :firststate
aasm_state :secondstate
aasm_event :approve do
transitions :to => :secondstate, :from => [:firststate], :guard => :has_a_price?
end
def has_a_price?
self.price.present?
end
Run Code Online (Sandbox Code Playgroud) ruby ×2
aasm ×1
affiliate ×1
backbone.js ×1
capybara ×1
collections ×1
href ×1
html ×1
html5 ×1
hyperlink ×1
jobs ×1
key ×1
mime ×1
namespaces ×1
parameters ×1
precompile ×1
render ×1
sidekiq ×1
state ×1
stream ×1
testing ×1
tracking ×1
url ×1
validation ×1
webrat ×1