我有一个表单元素,我按要求设置:
$this->addElement('text', 'email', array(
'label' => 'Email address:',
'required' => true
));
Run Code Online (Sandbox Code Playgroud)
因为我设置为true,所以它确保它不是空的.默认错误消息如下所示:
"Value is required and can't be empty"
Run Code Online (Sandbox Code Playgroud)
我尝试在验证器上设置消息,但这会引发致命错误:
$validator = $this->getElement('email')->getValidator('NotEmpty');
$validator->setMessage('Please enter your email address.');
Run Code Online (Sandbox Code Playgroud)
在非对象上调用成员函数setMessage()
如何将消息设置为自定义错误消息?
我在Ruby on Rails 3应用程序中使用Devise Ruby gem.当登录用户创建我的某个模型时,我想将其用户ID保存为创建它的人.我该怎么办?
我正在使用Zend Framework并使用Zend_Http_Client向第三方API发出POST请求.
$client = new Zend_Http_Client('http://api.com');
$client->setParameterPost(array(
'param1' => 'value'
));
$response = $client->request('POST');
echo $response->getBody();
Run Code Online (Sandbox Code Playgroud)
此API返回XML文档作为其响应.
<?xml version="1.0" ?>
<registration>
<id>12345</id>
</registration>
Run Code Online (Sandbox Code Playgroud)
如何将响应转换为可以使用的内容?
我是Git的新手,所以让我知道是否有更好的方法来做到这一点......
所以我在github上分配了一个项目,我正在按照我想要的方式进行更改.我做的一个更改是删除文件.所以我删除了该文件git rm filename.现在我想从我分叉的原始仓库中提取最新的更改,所以我做了git pull original-remote-repo master.但它给出了一条消息,说我删除的文件存在冲突(因为它已在我的仓库中删除,但在"original-remote-repo"中对其进行了更改).自从我删除它以来,我不关心对此文件的任何更改.
有没有什么我需要做的,以便合并这些而不重新创建文件(因为我不得不再次删除它)?还是我应该采用更好的工作流程?
我有一个ruby脚本,还需要在目录中提供一些静态文件(例如index.html,CSS和JS目录).编写一个内联Web服务器来提供这些文件的最佳方法是什么?
require 'webrick'
web_server = WEBrick::HTTPServer.new(:Port => 3000, :DocumentRoot => Dir.pwd + '/web')
trap 'INT' { web_server.shutdown }
web_server.start
Run Code Online (Sandbox Code Playgroud)
或者将其添加到您.bash_profile的文件中,以便在任何目录中提供文件:
alias serve="ruby -rwebrick -e\"s = WEBrick::HTTPServer.new(:Port => 3000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start\""
Run Code Online (Sandbox Code Playgroud) 我需要返回一个计数列表(所有记录,所有记录都符合某个标准).我知道如何使用MySQL(SELECT COUNT(*) WHERE ...),但我不熟悉如何使用Mongo和Mongoid.如何以最有效的方式获取这些计数?
我正在编写一个gem,其中包含一个开发人员可以扩展的Sinatra应用程序.例如:
# gem code:
require 'sinatra'
module Mygem
class Application < Sinatra::Base
get 'auth/login' {}
get 'auth/logout {}
end
end
# developer code:
require 'mygem'
class DeveloperApp < Mygem::Application
# ..
end
Run Code Online (Sandbox Code Playgroud)
我也开始使用RSpec了.我应该如何配置RSpec来测试此功能?
我正在花一点时间跟踪应用程序并遇到了一个我不知道如何解决的问题.我有一个Task模型和一个Client模型.每个任务都属于一个客户端.
class Task < ActiveRecord::Base
belongs_to :client
attr_accessible :client_id, :description, :start, :end
scope :yesterday, -> {
where('start > ?', Date.yesterday.to_time).where('start < ?', Date.today.to_time)
}
end
class Client < ActiveRecord::Base
attr_accessible :name
has_many :tasks
end
Run Code Online (Sandbox Code Playgroud)
现在,我正在显示任务完成当天确定的任务列表,并在完成任务之前进行排序.我想显示相同的列表,但按客户端分组,并按客户端名称排序.这就是我想做的事情:
<div id="yesterday_summary">
<% @yesterday_clients.each do |client| %>
<h2><%= client.name %></h2>
<ul>
<% client.tasks.each do |task| %>
<li><%= task.description %></li>
<% end %>
</ul>
<% end %>
</div>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我目前有:
@tasks_yesterday = Task.yesterday
@yesterday_clients = group_tasks_by_client @tasks_yesterday
Run Code Online (Sandbox Code Playgroud)
在这个group_tasks_by_client方法中,我有一些非常丑陋的代码,目前还没有工作:
def group_tasks_by_client(tasks)
clients …Run Code Online (Sandbox Code Playgroud) 我正在编写一个自定义验证器,用于检查至少有一个字段是否有值.我想验证'namefield'或'idfield'是否有值.其中一个可以是空的,或者两个都可以有值,但至少其中一个必须有值.
$nameField = new Zend_Form_Element_Hidden('namefield');
$nameField->setValue($this->nameFieldValue)
->addValidator('AtLeastOneHasValue', false, array('idfield'));
Run Code Online (Sandbox Code Playgroud)
根据我的理解,除非我将表单元素设置为required,否则我的验证器将不会验证.
->setRequired(true)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其设置为required,它会自动验证它是否为空,并且错误消息显示它为空.我想允许该字段为空,并使用我的自定义验证器验证多个字段.如何使用自定义验证器验证表单元素,而不将表单元素设置为必需?
我只是想找到一种方法来使用Zend Framework获取我的视图模板目录的路径.有没有办法做到这一点?