我的表单中有以下代码.
<%= f.datetime_select(:date_time, :prompt => {:day => 'Day', :month => 'Month', :year => 'Year'}, :start_year => Date.today.year, :end_year => Date.today.year + 2, :minute_step => 15, :include_blank => false) %> if either one is blank.
Run Code Online (Sandbox Code Playgroud)
当其中一个字段留空时,我得到:
1 error(s) on assignment of multiparameter attributes
Run Code Online (Sandbox Code Playgroud)
正在传递的参数是:
{"utf8"=>"?",
"authenticity_token"=>"kQpfsj5RxnDtxkvBdwPEFnX1fY6euKnMQeDRAkvJvIE=",
"event"=>{"description"=>"",
"venue"=>"",
"street"=>"",
"city"=>"",
"country_id"=>"",
"date_time(1i)"=>"",
"date_time(2i)"=>"",
"date_time(3i)"=>"",
"date_time(4i)"=>"00",
"date_time(5i)"=>"00",
"ticket_url"=>""},
"x"=>"94",
"y"=>"12"}
Run Code Online (Sandbox Code Playgroud)
有人知道为什么会这样吗?
在这个链接上似乎有一个"脏"修复,但也许在Rails 3中有一个更好的解决方案?
我有照片属于收藏和用户.照片始终属于用户,但可能未分配给集合.
在我的控制器中,这完美地工作:
@collection_photos = Photo.where( :collection => @collection, :user => current_user )
Run Code Online (Sandbox Code Playgroud)
但是,这失败了......
@other_photos = Photo.where( :collection => nil, :user => current_user )
Run Code Online (Sandbox Code Playgroud)
......但这有效:
@other_photos = Photo.where( :collection_id => nil, :user => current_user )
Run Code Online (Sandbox Code Playgroud)
当集合设置为nil时,我收到以下错误消息:No attribute named 'collection' exists for table photos.
如果我传递一个对象,它知道collection_id从符号中搜索:collection,但如果我没有传递一个对象,它似乎并不知道该关联.
我理解正确吗?任何人都可以解释一下为什么:collection=>nil不起作用?
当我使用IRB创建一个新的模型实例并保存时,没有任何东西打印到控制台,我得到一个"ActiveRecord :: StatementInvalid:Mysql :: Error:Column'user_id'不能为null"错误,所以我假设before_save不是被叫.我无法弄清楚为什么.我甚至尝试过使用before_save过滤器.这是我的代码:
require 'secure_resource/secure_resource_encryption'
class Database < ActiveRecord::Base
belongs_to :username_encryption, :class_name => "Encryption", :foreign_key => :username_encryption_id
belongs_to :password_encryption, :class_name => "Encryption", :foreign_key => :password_encryption_id
# Virtual attribute to retrieve the decrypted username.
def username
if self.username_encryption.nil?
return nil
end
begin
return self.username_encryption.encryption
rescue SecureResourceError
raise SecureResourceError
end
end
# Provides a way to reset the username.
def username=(username)
if self.username_encryption.nil?
self.username_encryption = Encryption.new
self.username_encryption.encryption = username
end
end
# Virtual attribute to retrieve the decrypted password.
def …Run Code Online (Sandbox Code Playgroud) 在Amazon RDS上运行我们的应用程序.如何审查/检查数据库中的数据?例如,我如何获得列表articles?
我的应用程序运行在Ruby on Rails和Heroku上.我想到的一种方法是运行Heroku控制台命令.
有没有更好的方法来查看RDS数据库中存储的数据?
如何将多数组类型的数据存储到cookie中.
例如: [[1, 'foo'], [2, 'bar'], [3, 'foobar']]
我可以使用单维数组来实现它:
cookies[:foobar] = { :value => cookies[:foobar] << ",1" }
Run Code Online (Sandbox Code Playgroud)
然后呢
cookies[:foobar].split(',').include?("1")
Run Code Online (Sandbox Code Playgroud)
验证1cookie中是否存在.我不太确定如何使用多维数组来解决这个问题
现在Rails 3测试版就在这里,让我们进行一些小问题.
请简要告诉我们您的应用程序的功能以及何时将其升级到Rails 3.或者,如果您不打算很快升级,请告诉我们什么阻止了您.
是否有可能在所有浏览器中实现行高一致性?
我附上了一张图片.你会注意到一个红色的矩形框和一个绿色的矩形框(两者都有相同的宽度和高度),我手动通过photoshop添加,以帮助显示虚线(红色框下方)和"粉丝:3197179"文字.
似乎Firefox是唯一一个以不同方式显示元素的人.当我应用行高时,我会注意到这一点.我可以用任何方式使其与所有浏览器保持一致吗?
我使用的是Firefox 3.6.13,Safari 5.0.3,Opera 10.63和Chrome 8.0.552.231.
.clearfix,
.container {
display: block;
}
ul {
margin: 0;
padding: 0;
list-style: none;
}
li {
position: relative;
margin: 0 0 0 0;
padding: 12px 0;
border-bottom: 1px dotted #E7E7E7;
}
li img {
float: left;
margin-top: 0;
}
li p {
margin: 0 0 0 58px;
padding: 0;
font-weight: normal;
border: none;
font-size: 1em;
line-height: 1.3em;
}
li p.name {
position: relative;
padding-top: 0;
font-size: 1.1em;
font-weight: bold;
}Run Code Online (Sandbox Code Playgroud)
<ul> …Run Code Online (Sandbox Code Playgroud)这很奇怪.我有一个简单的表格.我在这个表单之外有一个文件输入元素.
用户单击文件输入元素并选择一个文件.我使用以下代码克隆文件输入:
$('input[name="song[attachment]"]').clone(true).appendTo('form')
Run Code Online (Sandbox Code Playgroud)
在所有浏览器中:FF,Opera,Safari,Chrome,当我检查表单元素时,我在表单中看到了克隆的文件输入元素.但是,当我在FF和Opera中提交表单时,它可以工作.Safari和Chrome使用空文件输入提交表单.
我注意到克隆文件输入元素并将其附加到表单元素时,它不会复制其值.它只克隆一个空的输入文件元素.这是正常的吗?
我的Jquery代码有问题吗?或者这是一个安全问题,这就是为什么Safari和Chrome不允许我这样做的原因?如果是后者,为什么FF和Opera会这样做呢?
我想知道上传中等大小文件的一般共识是什么.我有一个Web应用程序,每次用户上传文件(通常大于5mb)时,Web服务器都会挂起,直到文件上传完成.
以上看似乎很正常,因为单个上传可以占用单个HTTP请求处理程序.网络开发人员是否考虑到这一点,并且:
a)支付更多HTTP处理程序
b)使用其他方法通过使用AJAX或其他方法来克服这个问题
我听说网络应用程序有一些HTTP请求处理程序来处理这个问题是很正常的,这将花费更多.另一方面,如果成本是一个问题,那么有些人建议尝试直接通过Flash + AJAX直接上传到Web服务器或存储服务(即Amazon S3).后一种方法需要一些脚本,并且有点混乱.
我的第二个问题:
通过使用ajax将文件上载到服务器上.这仍然占用整个HTTP请求处理程序吗?即服务器是否挂起,直到上传完成?
即使使用闪存,我仍然需要指定要上传的网址.该url将是我的控制器上的操作之一.这意味着处理仍然发生在服务器端.到目前为止这是对的吗?
我刚在想.另一方面,如果我使用其中一个上传脚本(plupload,uploadify,swfupload等)直接上传到Amazon S3,则处理将在S3服务器而不是本地Web服务器上处理.哪个不会挂起网络应用程序.我理解正确吗?
想听听您的反馈意见.
我一直想进入测试阶段.在阅读了几个测试框架(test :: unit,Rspec等)之后.我决定试试Rspec和Capybara.
我想了解经验丰富的开发人员如何正确使用这些库.这反过来将帮助我编写更好的应用程序代码,并在应用程序的最小裂缝中发现错误或小错误.
接近这个总TDD nooby.您遇到过哪些在线资源来帮助您了解Rspec + Capybara.我找到了这个Railscast,这是一个很好的起点.我还应该阅读其他任何资料/文章吗?
我遇到了Rspec Book,这对Rspec非常有用,但更多关于Cucumber的例子.
另外,我怎样才能找到Capybara的所有可用功能.即fill_in,click_link等.Github 页面提到了一些,但不是全部.
activerecord ×2
amazon-rds ×1
callback ×1
capybara ×1
cookies ×1
css ×1
html ×1
javascript ×1
jquery ×1
mysql ×1
postgresql ×1
rspec ×1
tdd ×1
testing ×1
validation ×1
where ×1