我想知道用户注册的最佳实践。我倾向于将站点注册存储在单独的注册表中,然后在通过电子邮件确认注册后将数据传输到用户表中。
这样做的好处是从用户表中读取的内容不会因从未激活的注册而混乱。另一个好处是电子邮件(用户名)字段可以在用户表中保持唯一,但如果您尝试使用不属于您的电子邮件地址进行注册,则该电子邮件地址的所有者仍然可以将其注册为电子邮件字段在注册表中不会是唯一的。
我想知道这是否是一种常见做法,或者是否有任何理由这不是一个好主意?
我的一些观点需要将他们的textareas转换为富文本编辑器.
我正在使用jwysiwyg作为编辑器.当初始化编辑器时,它要求它所附加的元素在页面中,即当我调用$(this.el).wysiwyg()时,this.el已经在文档中.
我的大多数观点实际上并没有将自己附加到dom上 - 他们的渲染方法只是使用应用模板引擎设置其元素html内容,例如$(this.el).html(this.template(content)
视图/控制器进一步向上看实际将这些子视图插入页面.同时,视图在模型更改时会重新渲染.
如何确保编辑器每次渲染时都附加到元素上,并且在元素已经在页面中之前仍然确保编辑器没有附加?
显然,我可以在这个特殊情况下共同破解一些东西,但我想要一个适用于所有情况的优雅解决方案.
任何帮助将非常感激.
编辑:这里的要点是解决方案必须优雅地扩展以覆盖渲染后必须设置样式的多个元素,并且在它们位于DOM之前不得设置样式
编辑:如果我做自上而下的渲染,这不是问题,但这很慢,我想要一个解决方案,我可以从下往上渲染,然后在顶部插入完整的视图
编辑:
使用下面建议的一些技术的组合,我正在考虑做类似以下的事情.任何评论/批评将不胜感激.
app/views/base_view.js:
initialize: function() {
// wrap the render function to trigger 'render' events
this.render = _.wrap(this.render, function() {
this.trigger('render')
});
// bind this view to 'attach' events.
// 'attach' events must be triggered manually on any view being inserted into the dom
this.bind('attach', function() {
this.attached();
// the refreshed event is only attached to the render event after the view has been attached
this.bind('render', this.refreshed())
// each …Run Code Online (Sandbox Code Playgroud) 我正在考虑实施类似下面的内容并且想知道a)如果由于某种原因我可能是一个非常糟糕的想法我没有想到,并且b)如果没有 - 是否有一个现有的宝石来做它.
基本上,我希望能够从我的rails控制器排队javascript事件,以便在下一次渲染时,所有排队的事件都将被触发并从队列中删除.有点像闪存机制,但对于事件而言.例如:
在我的控制器中:
def create
if resource.create
add_event('resourceCreated', :id => resource.id)
end
end
Run Code Online (Sandbox Code Playgroud)
在我的应用程序布局中,例如:
%javascript
- @events.each do |e|
$(document).trigger(#{e.event_name}, #{e.event_data})
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑:这将是有用的,例如,当创建项目时,服务器可以重定向到所述项目的编辑表单,或者可以重定向到相关控制器的索引操作.这些页面不知道刚刚创建了一个项目.但是,如果项目是成功创建的话,或者我想要关闭一个对话框窗口,但如果没有,则将其保持打开状态,或者我可能需要知道的任何其他可能的原因.显然不仅仅与创造有关,这只是我用来说明问题的例子
编辑:赏金归于任何以令人信服的方式说服我,这是一个好/坏的想法或提供更好的选择