可能重复:
扩展方法与静态实用程序类
我正在构建一个通用函数的API,它根据.NET中的对象执行操作.例如; 我创建了一个函数来检查字符串以查看它是否是电子邮件地址.
我可能有:
static bool IsEmailAddress(string text)
{
return IsMail(text);
}
Run Code Online (Sandbox Code Playgroud)
或者我可以创建一个像这样使用的扩展方法:
string text = "HelloWorld@Email.com";
if (text.IsEmailAddress())
{
}
Run Code Online (Sandbox Code Playgroud)
哪个更合适,或者你认为既然这是一个通用的库,我可以在技术上实现它两种方式,并允许开发人员决定哪个最适合他们?
所以我在rails中有一个带有复选框的表单助手; 我希望该复选框在选中或取消选中时将值设置为"thatvalue"或"thisvalue"; 我还没有找到任何地方如何设置它
f.check_box :field
Run Code Online (Sandbox Code Playgroud)
我发现了类似的东西
<%= form.check_box :field, {}, "thisvalue", "thatvalue" %>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为我还在我的标签中设置了:class和:style,所以有类似的东西
<%= form.check_box :field, {}, "thisvalue", "thatvalue", :class => "checkbox", :style => "display:none;" %>
Run Code Online (Sandbox Code Playgroud)
错误并告诉我错误的参数数量(4个为5)
所以现在我必须在我的控制器中"破解"它,并根据我的复选框是0还是1来设置我的字段...这非常糟糕.
任何的想法?
我想在我的Rails 3应用程序中的link_to帮助器中有一个多重符号' × '.
直截了当的代码< 在我的页面%= link_to '×', model, :confirm => 'Sure?', :method => :delete %>输出×.怎么解决?
我已经搜索了STACKOVERFLOW和其他论坛以解决我的问题 - 如果我错过了一个有效的解决方案,请指向我.
我的问题:每当在可排序列表中拖动一个元素(一个portlet div)时,我需要在实际拖动过程开始之前执行一些操作(从我在START事件被触发之前理解).
更具体一点:我的DIV为用户提供了扩展/折叠它的主体的可能性(就像在jquery UI页面http://jqueryui.com/demos/sortable/#portlets中的示例一样).
每当拖动一个元素时我都想触发我的折叠方法,以便拖动的唯一可视元素是折叠的DIV.
无论何时我调用我的方法(类似这样)
$someitem.trigger("toggle.somenamespace")
Run Code Online (Sandbox Code Playgroud)
它按预期工作,除了在sortable中触发start事件之前计算拖动帮助器的高度,因此帮助器具有处于未折叠状态的原始元素的高度.
我原来的想法是:因为可分类的例如在实际拖拽程序开始之前测量拖曳距离的可能性(使用选项:距离),它应该可以挂钩到这个流程中,例如存储原始的startDrag函数(或者无论它被称为临时var中的可排序小部件,都可以使用自定义回调覆盖它,该回调首先触发我的折叠功能,然后调用原始函数以确保正确计算高度.但是 - 到目前为止,这种方法并没有取得多大成功......
请注意,在处理程序中为拖动或在可排序事件上设置CSS属性具有所需的效果,因为为帮助程序计算的可排序窗口小部件的高度设置为元素属性.
或者 - 可能有人知道更好的方法来影响在拖动过程中显示的助手的高度,这只是我的观点,我的原始方法(在拖动过程之前更改元素,然后让小部件按照计算方式进行计算)它是有意的)将是一个更好的解决方案......
感谢任何帮助,马蒂亚斯
编辑:将可排序标志:forceHelperSize设置为true并在开始拖动器中设置ui.item /帮助器大小也不起作用,因为它可视地产生所需的效果(仅拖动折叠的项目,但停止元素一直拖下来(好像该项目仍然具有未折叠状态的高度)用帮助器测试:'原始'和'克隆'
我的一个CodeIgniter Controller函数需要调用递归函数作为其功能的一部分.如果我将它放在控制器类中,函数调用会产生阻塞,如果我把它放在类之外,它就无法访问数据库函数($this->db->get()).将其作为辅助功能可以解决这个问题吗?
我想创建一个处理格式的辅助类(即具有删除标点符号和类型之间转换的方法,以及重新格式化名称等).这似乎不需要任何字段 - 它唯一的目的是传递转换的东西并返回它们,重新格式化.省略构造函数是不好的做法?如果是这样,我的构造函数应该做什么?我正在查看此链接并注意到它描述的类缺少构造函数.
我目前正在尝试将功能转移到引擎中.到目前为止它运行良好,但我有点困惑为什么引擎的某些部分总是在发生变化时自动重新加载,而有些部分则没有.
具体来说,在添加辅助方法时,我必须重新启动Rails服务器,否则Rails不会看到它.这是正常的行为吗?这是我的引擎的相关部分:
组件/ iq_list.rb
# encoding: utf-8
require 'iq_list/engine'
# Load IqList Modules
module IqList
extend ActiveSupport::Autoload
autoload :Helpers
autoload :Models
autoload :Controllers
end
Run Code Online (Sandbox Code Playgroud)
组件/ iq_list/engine.rb
module IqList
class Engine < ::Rails::Engine
end
end
Run Code Online (Sandbox Code Playgroud)
组件/ iq_list/helpers.rb
module IqList
module Helpers
extend ActiveSupport::Autoload
autoload :IqListHelper
end
end
Run Code Online (Sandbox Code Playgroud)
组件/ iq_list /助理/ iq_list_helper.rb
module IqList
module Helpers
module IqListHelper
def some_method
# ...
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我对引擎还很陌生,上面的很多代码都是从别人的工作中拿走的,所以请耐心等待我.任何暗示正确的方向都受到高度赞赏.
我想忘记密码,所以我必须再次输入密码.
我设置了这个:
git config credential.helper 'cache --timeout=600'
Run Code Online (Sandbox Code Playgroud)
但很久以后,几天,它仍然记得密码,并没有再问我...
git版本1.7.10.4(在Ubuntu)
我遇到过一个bug吗?(因为我看到类似的问题,但没有我发现答案这个...)
编辑:或者我错过了什么?
编辑:现在我知道commit是本地的,而且push很遥远.但我的提交(使用RabbitVCS Git nautilus插件)似乎正在执行,push因为远程仓库正在更新...当我发出时push,它会要求输入密码......但是使用该commit命令它不会要求并执行远程更新; 我检查了4小时前我commit更新了远程服务器:(
我想开始许多需要root权限的NSTasks,我发现我应该使用Apple的授权工具包,我找到了专门为此设计的STPrivilegedTask.
问题是,当我启动STPrivilegedTask时,它会每次都询问我的root密码.有没有办法输入第一个特权任务的root密码,然后对于其他任务,应用程序将记住root密码,这样用户就不必再次输入密码?
如何在Rails控制台中执行image_tag方法
运行控制台$ rails c
加载助手
包括ActionView :: Helpers
执行命令
IMAGE_TAG( 'test.png')
我有一个奇怪的错误.

请帮忙!
helper ×10
.net ×1
actionview ×1
c# ×1
caching ×1
checkbox ×1
codeigniter ×1
constructor ×1
controller ×1
credentials ×1
draggable ×1
forms ×1
git ×1
irb ×1
java ×1
jquery ×1
jquery-ui ×1
macos ×1
php ×1
recursion ×1