这可能是一个愚蠢的问题但是当我在Rails中整理HTML电子邮件时,是否有一种特别简单的内置方式可以在浏览器中预览模板,或者我是否需要编写某种自定义控制器来拉动它在它看来?
我正在尝试使用Faker gem将一些假数据填充到工厂中:
Factory.define :user do |user|
user.first_name Faker::Name::first_name
user.last_name Faker::Name::last_name
user.sequence(:email) {|n| "user#{n}@blow.com" }
end
Run Code Online (Sandbox Code Playgroud)
但是,虽然我希望这会生成具有不同first_name和last_names的用户,但每个用户都是相同的:
>> Factory(:user)
=> #<User id: 16, email: "user7@blow.com", created_at: "2011-03-18 18:29:33",
updated_at: "2011-03-18 18:29:33", first_name: "Bailey", last_name: "Durgan">
>> Factory(:user)
=> #<User id: 17, email: "user8@blow.com", created_at: "2011-03-18 18:29:39",
updated_at: "2011-03-18 18:29:39", first_name: "Bailey", last_name: "Durgan">
Run Code Online (Sandbox Code Playgroud)
如何让Faker gem为每个用户生成新名称,而不仅仅重用原始用户?
我想把一行文字放在一起,这样整行都会掉线或根本没有掉线
可接受
How do I wrap this line of text - asked by Peter 2 days ago
Run Code Online (Sandbox Code Playgroud)
可接受
How do I wrap this line of text
- asked by Peter 2 days ago
Run Code Online (Sandbox Code Playgroud)
不能接受的
How do I wrap this line of text - asked by Peter
2 days ago
Run Code Online (Sandbox Code Playgroud)
这在CSS中是否可以实现?
在rspec中,您可以创建一个mock或一个double.这两个看起来几乎是一回事,我在文档中找不到任何消除歧义的东西.
有什么不同?
我正在尝试使用factory_girl创建一个"用户"工厂(使用RSpec)但是它似乎没有在事务上运行,并且由于测试数据库中先前测试的残余数据而显然失败了.
Factory.define :user do |user|
user.name "Joe Blow"
user.email "joe@blow.com"
user.password 'password'
user.password_confirmation 'password'
end
@user = Factory.create(:user)
Run Code Online (Sandbox Code Playgroud)
运行第一组测试很好:
spec spec/
...
Finished in 2.758806 seconds
60 examples, 0 failures, 11 pending
Run Code Online (Sandbox Code Playgroud)
一切都很好并且符合预期,但是再次运行测试:
spec spec/
...
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/validations.rb:1102:in `save_without_dirty!': Validation failed: Email has already been taken (ActiveRecord::RecordInvalid)
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/dirty.rb:87:in `save_without_transactions!'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/transactions.rb:200:in `save!'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/transactions.rb:182:in `transaction'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/transactions.rb:200:in `save!'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/transactions.rb:208:in `rollback_active_record_state!'
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/transactions.rb:200:in `save!'
from /Library/Ruby/Gems/1.8/gems/factory_girl-1.2.3/lib/factory_girl/proxy/create.rb:6:in `result'
from /Library/Ruby/Gems/1.8/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:316:in `run'
from /Library/Ruby/Gems/1.8/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:260:in `create'
from /Users/petenixey/Rails_apps/resample/spec/controllers/users_controller_spec.rb:7
from /Library/Ruby/Gems/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:183:in …Run Code Online (Sandbox Code Playgroud) 我想减少我的应用程序上的路由,以便:
http://myapplication.com/users/peter/questions/how-do-i-create-urls
成为...
http://myapplication.com/peter/how-do-i-create-urls
我有一个用户控制器,并希望它足智多谋.用户还有一个名为问题的嵌套资源.
基本路线文件
没有任何URL修剪,routes文件如下所示:
...
resources :users do
resources :questions
end
Run Code Online (Sandbox Code Playgroud)
但是,此处的URL采用的形式
http://myapplication.com/users/peter/questions/how-do-i-create-urls
而不是
http://myapplication.com/peter/how-do-i-create-urls
部分成功 我尝试过以下方面:
...
resources :users, :path => '' do
resources :questions
end
Run Code Online (Sandbox Code Playgroud)
这有效并产生:
http://myapplication.com/peter/questions/how-do-i-create-urls
但是,如果我尝试:
...
resources :users, :path => '' do
resources :questions, :path => ''
end
Run Code Online (Sandbox Code Playgroud)
然后事情开始出错了.
这是正确的方法,如果是这样,是否可以使用嵌套资源?
似乎在rails中你可以在两个地方定义关联验证,或者在关联本身上:
class Child
belongs_to :parent, :validate => true
end
Run Code Online (Sandbox Code Playgroud)
或者作为验证回调:
class Child
belongs_to :parent
validates_associated :parent
end
Run Code Online (Sandbox Code Playgroud)
这两种方法有什么区别?
测试差异
我想也许前者会创建一个背压,并强制父母只有在孩子有效的情况下才有效:
即(设置时:validate => true)
child.valid? # => false
child.parent.valid? # => also evaluates to false because of the :validate => true condition
# do whatever it takes to make the child valid again
#...
child.valid? # => true
child.parent.valid? # => true
Run Code Online (Sandbox Code Playgroud)
但是我测试了它,但这不会发生.那两种方法之间有什么区别(如果有的话)?
我正试图启动rails dbconsoleHeroku,但得到以下错误:
heroku run rails dbconsole
# => Couldn't find database client: psql. Check your $PATH and try again
Run Code Online (Sandbox Code Playgroud)
是否可以在Heroku上使用dbconsole?如果没有,是否有另一个可以使用的客户端?
在Rails查询中包含LIKE子句的最佳方法是什么,即(完全不正确的):
Question.where(:content => 'LIKE %farming%')
Run Code Online (Sandbox Code Playgroud) 我对Cucumber的情景的简洁性和实用性印象深刻,它们是测试不同情况的一种很好的方法.
例如,例如黄瓜方案
Feature: Manage Users
In order to manage user details
As a security enthusiast
I want to edit user profiles only when authorized
Scenario Outline: Show or hide edit profile link
Given the following user records
| username | password | admin |
| bob | secret | false |
| admin | secret | true |
Given I am logged in as "<login>" with password "secret"
When I visit profile for "<profile>"
Then I should <action>
Examples: …Run Code Online (Sandbox Code Playgroud)