小编ssc*_*rus的帖子

AuthLogic表单给出了错误的验证错误 - 为什么?

我根据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)

validation ruby-on-rails authlogic

2
推荐指数
1
解决办法
1835
查看次数

Rails:Object#id将被弃用; 使用Object#object_id

可能重复:
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.为什么只匹配引发错误而不是客户或项目呢?我怎样才能在我的代码中纠正这个问题?

非常感谢.

ruby-on-rails object deprecated

2
推荐指数
1
解决办法
2070
查看次数

Rails - 是否有通过所有现有params的快捷方式?

如何将所有参数传递给控制器​​操作?

# 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)

ruby-on-rails ruby-on-rails-3

2
推荐指数
1
解决办法
4022
查看次数

Rails中的简单自定义模型验证

我想做两个简单的自定义验证:

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)

validation model ruby-on-rails ruby-on-rails-3

2
推荐指数
1
解决办法
1169
查看次数

geokit-rails的未定义方法'merge_conditions'

我正在玩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,我已经迁移列latlng成公司.我哪里错了?

ruby-on-rails geolocation geokit ruby-on-rails-3

2
推荐指数
1
解决办法
963
查看次数

JQuery相当于Ruby的a || b

在Ruby中,我可以编写a || b并且函数将选择a是否存在,如果不存在,b.

我怎么能在JQuery中做这个,而不用写一些非常麻烦的东西,比如:

if (a){
  a
} else {
  b
}
Run Code Online (Sandbox Code Playgroud)

另外,JQuery是否具有与Ruby相同的功能a ||= b

javascript ruby

2
推荐指数
2
解决办法
164
查看次数

使用条件注释共享LESS CSS变量

我有一个LESS样式表styles.less,其中包含一些我需要在ie7.css样式表中访问的变量,这些变量是使用条件注释加载的.

鉴于这些是完全独立的样式表,并且考虑到我必须转换ie7.cssie7.less,我是否可以在两个样式表中提供这些CSS变量?

即我希望能够做如下的事情:

# styles.less, always loaded
@labelwidth: 150px;

# ie7.less, sometimes loaded
label{ margin-left: @labelwidth; }
Run Code Online (Sandbox Code Playgroud)

css conditional-comments less internet-explorer-7

2
推荐指数
1
解决办法
4003
查看次数

delayed_job vs. cron

我有一个系统,用户进入一个包含多个部分的应用程序进程 - 有时用户会保存他们的进度并稍后再回来.

我想向用户发送电子邮件,如果他们没有在48小时内回来-这将是最好做到这一点使用cron,delayed_jobwhenever

我注意到,每当我在控制台中运行操作(例如bundle installrake db:migrate)时,它也运行cron,这让我怀疑我们可能有用户在同一天获得多个提醒的情况.

你有什么建议吗?

cron ruby-on-rails whenever delayed-job ruby-on-rails-3

2
推荐指数
1
解决办法
935
查看次数

Postgresql:订购列以匹配自定义条件

我在排序查询结果时遇到问题.

执行此查询后:

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)

sql sorting postgresql-9.1

2
推荐指数
1
解决办法
3749
查看次数

Rails如何计算操作的响应代码

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)

ruby-on-rails

1
推荐指数
1
解决办法
1304
查看次数