我根据AuthLogic示例设置了AuthLogic for Rails:http://github.com/binarylogic/authlogic_example .
我可以成功登录到系统,但是当访问users/new.html.erb注册新用户时,表单会返回以下验证错误:
Email is too short (minimum is 6 characters)
Email should look like an email address.
Login is too short (minimum is 3 characters)
Login should use only letters, numbers, spaces, and .-_@ please.
Password is too short (minimum is 4 characters)
Password confirmation is too short (minimum is 4 characters)
Run Code Online (Sandbox Code Playgroud)
我输入的数据中不存在这些错误.
# new.html.erb
<%= form.label :login, nil, :class => "label" %><br />
<%= form.text_field :login, :class => "inputBox",
:name => "login", :type => …Run Code Online (Sandbox Code Playgroud) 可能重复:
Rails主键和对象ID
很快的问题.我的服务器警告我第37行将被弃用,具体来说:
#Server error:
views/projects/index.html.erb:37: warning: Object#id will be deprecated; use Object#object_id
#Views/projects/index.html.erb:
6: <% for project in @projects do %>
36: <%= project.id %>
37: <%= Matching.find_all_by_customer_id_and_project_id( @customer.id, project.id).id %>
38: <%= @customer.id %>
Run Code Online (Sandbox Code Playgroud)
这是我的困惑.第36行project.id没有发出警告,所以我假设问题是我在匹配模型上调用ID.为什么只匹配引发错误而不是客户或项目呢?我怎样才能在我的代码中纠正这个问题?
非常感谢.
如何将所有参数传递给控制器操作?
# instead of:
<%= link_to mylist_url(id: params[:id], se: "true", st: params[:st], re: params[:re], li: params[:li]) do %> ... <% end %>
# something like:
<% link_to mylist_url(params: :all, se: "true") do %> ... <% end %>
Run Code Online (Sandbox Code Playgroud) 我想做两个简单的自定义验证:
if project.end < project.start, raise an exception.
if project.start, set project.active to equal true
Run Code Online (Sandbox Code Playgroud)
我的代码(可能非常不正确)不起作用:
class Project < ActiveRecord::Base
before_save :check_data # now changed to before_validation
def check_data
if end < start
errors.add(:base, 'Project end date must be after project start date.')
end
if start
active = true
end
end
Run Code Online (Sandbox Code Playgroud)
错误正在被添加,但我没有被带回到带有错误消息的表单 - 在用户端似乎一切都很好.
此外,该字段active在数据库中不会更改.
控制器代码:
@project = Project.find(params[:id])
if @project.update_attributes(params[:project])
redirect_to home_url
else
flash[:error] = "There was an error saving your form."
redirect_to edit_project_url
end …Run Code Online (Sandbox Code Playgroud) 我正在玩Geokit-Rails(https://github.com/andre/geokit-rails),我需要查找距离原点10英里范围内的所有记录.这是我的错误:
Company.find(:all, :origin=>'New York, NY', :within=>10)
NoMethodError: undefined method `merge_conditions' for #<Class:0x0000010832f740>
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1016:in 'method_missing'
from /Users/san/Documents/sanj/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:349:in `apply_bounds_conditions'
from /Users/san/Documents/sanj/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:260:in `prepare_for_find_or_count'
from /Users/san/Documents/sanj/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:152:in `find'
from (irb):4
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:44:in `start'
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:8:in `start'
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我acts_as_mappable在Company.rb,我已经迁移列lat和lng成公司.我哪里错了?
在Ruby中,我可以编写a || b并且函数将选择a是否存在,如果不存在,b.
我怎么能在JQuery中做这个,而不用写一些非常麻烦的东西,比如:
if (a){
a
} else {
b
}
Run Code Online (Sandbox Code Playgroud)
另外,JQuery是否具有与Ruby相同的功能a ||= b?
我有一个LESS样式表styles.less,其中包含一些我需要在ie7.css样式表中访问的变量,这些变量是使用条件注释加载的.
鉴于这些是完全独立的样式表,并且考虑到我必须转换ie7.css为ie7.less,我是否可以在两个样式表中提供这些CSS变量?
即我希望能够做如下的事情:
# styles.less, always loaded
@labelwidth: 150px;
# ie7.less, sometimes loaded
label{ margin-left: @labelwidth; }
Run Code Online (Sandbox Code Playgroud) 我有一个系统,用户进入一个包含多个部分的应用程序进程 - 有时用户会保存他们的进度并稍后再回来.
我想向用户发送电子邮件,如果他们没有在48小时内回来-这将是最好做到这一点使用cron,delayed_job或whenever?
我注意到,每当我在控制台中运行操作(例如bundle install或rake db:migrate)时,它也运行cron,这让我怀疑我们可能有用户在同一天获得多个提醒的情况.
你有什么建议吗?
我在排序查询结果时遇到问题.
执行此查询后:
SELECT id_doc_header, id_clasificacion_doc
FROM cabecera_documento INNER JOIN tipo_doc USING (id_tipo_doc)
INNER JOIN clasificacion_documento USING (id_clasificacion_doc)
WHERE finalizado = 'f' AND cod_exp = '10-APC-2013' AND id_clasificacion_doc in(2,3,4,5)
ORDER BY case when Id_clasificacion_doc = 5 THEN 5 when Id_clasificacion_doc = 3 THEN 3
when Id_clasificacion_doc = 2 THEN 2 when Id_clasificacion_doc = 4 THEN 4 END;
Run Code Online (Sandbox Code Playgroud)
或这个:
SELECT id_doc_header, id_clasificacion_doc
FROM cabecera_documento INNER JOIN tipo_doc USING (id_tipo_doc)
INNER JOIN clasificacion_documento USING (id_clasificacion_doc)
WHERE finalizado = 'f' AND cod_exp = '10-APC-2013' …Run Code Online (Sandbox Code Playgroud) Rails如何计算控制器操作的响应代码?
给定以下控制器操作:
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'show' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
Run Code Online (Sandbox Code Playgroud)
(我使用相同的视图来显示和编辑记录)
有了这个积极的测试:
test "should update basic user information" do
user = users(:jon)
user.first_name="Jonas"
put :update, :id => user.id, :merchant_user =>user.attributes
assert_response :found
user = Merchant::User.find(user.id)
assert user.first_name == "Jonas", "Should update basic user information"
end
Run Code Online (Sandbox Code Playgroud)
负面测试是这样的:
test "should …Run Code Online (Sandbox Code Playgroud) validation ×2
authlogic ×1
cron ×1
css ×1
delayed-job ×1
deprecated ×1
geokit ×1
geolocation ×1
javascript ×1
less ×1
model ×1
object ×1
ruby ×1
sorting ×1
sql ×1
whenever ×1