我正在尝试将现有的Admin模型转换为Devise.我们已经有了密码哈希,但显然不是Devise兼容的.我想要做的是接受登录表单并根据加密密码检查提供的密码.如果不正确,请使用旧哈希检查密码,如果匹配,请清空旧的password_hash字段并将Devise的密码设置为提供的密码并保存模型.
前进的最佳方式是什么?我怀疑我需要覆盖一些东西,可能是在自定义控制器中,但我不完全确定如何继续.
我有一个字节数组,我正在从NetworkStream中读取.前两个字节表示后面的数据包的长度,然后将数据包读入该长度的字节数组.我需要从NetworkStream/byte数组中读取的数据有几个字符串,即由新行字符终止的可变长度数据,以及一些固定宽度字段,如字节和长整数.所以,像这样:
// I would have delimited these for clarity but I didn't want
// to imply that the stream was delimited because it's not.
StringbyteStringStringbytebytebytelonglongbytelonglong
Run Code Online (Sandbox Code Playgroud)
我知道(并且有一些说法)正在发生的数据包的格式,我需要做的是读取每个字符串值的"行",但读取字节和长度的固定字节数.到目前为止,我提出的解决方案是使用while循环将字节读入临时字节数组,直到有换行符.然后,将字节转换为字符串.这对我来说似乎很尴尬,但我没有看到另一种显而易见的方式.我意识到我可以使用,StreamReader.ReadLine()但这将涉及另一个流,我已经有了NetworkStream.但如果这是更好的解决方案,我会试一试.
我考虑的另一个选项是让我的后端团队为那些String值的长度写一个或两个字节,这样我就可以读取长度,然后根据指定的长度读取字符串.
所以,正如你所看到的,我有一些选择如何解决这个问题,我希望你的意见是关于你认为最好的方法.这是我现在用于以字符串形式读取整个数据包的代码.下一步是打破数据包的各个字段,并根据数据包中的数据完成需要完成的实际编程工作,创建对象,更新UI等.
string line = null;
while (stream.DataAvailable)
{
//Get the packet length;
UInt16 packetLength = 0;
header = new byte[2];
stream.Read(header, 0, 2);
// Need to reverse the header array for BitConverter class if architecture is little endian.
if (BitConverter.IsLittleEndian)
Array.Reverse(header);
packetLength = BitConverter.ToUInt16(header,0);
buffer = new …Run Code Online (Sandbox Code Playgroud) Rails文档有这些信息Object#blank?
如果对象为false,空或空白字符串,则该对象为空.例如,"","",nil,[]和{}为空.
但该方法的来源是这样的:
# File activesupport/lib/active_support/core_ext/object/blank.rb, line 12
def blank?
respond_to?(:empty?) ? empty? : !self
end
Run Code Online (Sandbox Code Playgroud)
现在,当我打开我方便的小命令行并输入ruby -e 'p " ".empty?'它时返回false.这意味着Rails应该说这是一个空白值,当它显然不是.但!我打开我rails console和我输入" ".empty?并像我早先的直接命令行一样得到假.但是,我键入"".blank?就像Rails承诺给我一样真实.
在理解Rails的blank?方法如何使用empty?String 方法时我缺少什么?
我收到了这个错误
The type or namespace name 'DataVisualization' does not exist in the namespace 'System.Windows.Forms' (are you missing an assembly reference?)
这是我using的课程部分:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms.DataVisualization.Charting;
using System.Windows.Forms.DataVisualization.Charting.Borders3D;
using System.Windows.Forms.DataVisualization.Charting.ChartTypes;
using System.Windows.Forms.DataVisualization.Charting.Data;
using System.Windows.Forms.DataVisualization.Charting.Formulas;
using System.Windows.Forms.DataVisualization.Charting.Utilities;
namespace myNamespace {
public class myClass {
// Usual class stuff
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我在另一个类中使用相同的DataVisualization包含.我能想到的唯一不同的是,给出这个缺少的命名空间错误的类是解决方案项而不是特定于项目.这些项目通过链接引用它们.有人对这个问题有什么看法吗?我已经安装了图表组件,.Net 3.5 SP1和Visual Studio 2008的图表加载项.
更新:我将解决方案项目中的项目移动为我项目的常规成员,我仍然看到相同的行为.
更新2:从解决方案项目中删除项目并将它们放在我的项目下工作.另一个项目仍在引用文件,这就是我之前认为它没有用的原因.但是,我仍然很好奇,为什么当类是解决方案项时我不能使用命名空间,但是在项目下移动它们(没有修改,请注意)立即使它们可识别.:\
请原谅我的C#.Net新手状态.如果这很明显并且我从文档中错过了它,那么将会感谢指向相关页面或示例代码的链接.
我正在开发一个应用程序,它将接受来自Java应用程序的TCP套接字连接.(是的,那部分需要Java.它是Sun SPOT设备,Java是唯一的选择.)Java应用程序将定期将新数据写入套接字,而我的应用程序的工作是接收byte [],转换它是一个字符串,处理数据(更新UI等),并可能将数据转发到另一台运行类似C#.NET应用程序的计算机上.
这就是我到目前为止所做的:现在,应用程序在启动时旋转了一个打开套接字的线程.Java应用程序可以成功连接到套接字,以便正常工作.我一直在寻找在的NetworkStream的beginRead方法和dataAvailable,length和CanRead性质,但我不能完全肯定,当我读了一个数据包,通常约为512字节,但可以改变如何确定.
如果Java应用程序将数据写入流或存在积压的数据(Java应用程序将相当快速地传递数据.)如何确保我一次只读取一个数据包?如果Java应用程序null在写入时终止数据,那会有帮助吗?够了吗?
最后,套接字只接收一个连接,但我需要保持打开,直到出现错误或连接终止.处理这方面最优雅的方法是什么?我不认为关闭并重新打开每个数据包将起作用,因为在Sun SPOT基站上运行的Java应用程序的快速火灾(几乎实时)方面.现在,当基站终止时,我的应用程序死了一个响亮而痛苦的死亡.:)
感谢您阅读并提供任何帮助.
我在这个截图中设置了一个XIB:
替代文字http://emberapp.com/jxpx777/images/interface-builder/sizes/m.png
文件的所有者是我的主窗口控制器.XIB还负责创建一个对象,该对象充当MGScopeBar视图的委托.正如您在屏幕截图中看到的那样,范围栏代理具有IBOutlet搜索字段的一个,以便它可以作为委托流程的一部分将其作为额外视图返回.
我遇到的问题是当查询附件视图的委托对象时,它IBOutlet NSSearchField是零.我很确定这与创建对象的顺序,IBOutlets有线等有关,但我只是有点迷失在过程中我可以期望搜索字段存在的位置以便范围栏代表可以正确引用它.
提前感谢任何指针.
我有一个NSArrayController,我用它来为IKImageBrowserView提供数据.我想支持从IKImageBrowserView拖放到其他应用程序.这是我的代码中的相关方法:
- (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard:(NSPasteboard *)pasteboard{
NSArray *items = [[resultsArrayController arrangedObjects] objectsAtIndexes:itemIndexes];
if(![pasteboard writeObjects:items]){
return 0;
}
return [items count];
}
Run Code Online (Sandbox Code Playgroud)
我的应用是新的,所以我的目标是10.6+,根据文档,"在Mac OS X v10.6及更高版本中,使用writeObjects:将URL直接写入粘贴板."
我已经验证了我试图写的对象确实是NSURL对象,所以我不确定进程中断的位置或者如何进一步解决问题.在此先感谢您的帮助.
好的,请忽略之前的事情.我不再得到错误了,所以看起来我的问题是当我更改Chart数据绑定的值时更新Chart.
//无视这里
大家好.我有一个有面板的WinForms应用程序panel1.后台线程会创建一些其他控件,然后panel1像这样添加
panel1.Controls.AddRange(myArrayOfControls);
Run Code Online (Sandbox Code Playgroud)
这很好用,我可以看到我的控件被添加了.但是,当新数据进入另一个线程时,我更新控件的父对象中的值,然后需要Refresh()使用新值来更新显示.Refresh()在任一上下文中调用,数据进入的线程或接收更新数据的对象都会导致InvalidOperation异常,因为需要Invoke.我已经尝试在我的模型对象中使用Invoke以及数据传入的线程,似乎无法动摇错误.
如果有人有一些指导我会非常感激.
更新:这里有更多信息.我不认为它需要它,但我错了.:)
我有一个对象类MyObject.此MyObject类在名为topologyThread的线程中创建.数据来自dataThread.MyObject的实例具有Panel实例变量,Panel具有子控件,包括System.Windows.Forms.DataVisualization.Charting命名空间中的两个Charts.因此,当数据进入dataThread时,我更新MyObject对象中的相应数据值,然后需要刷新图表以显示更新的数据.
我知道数据处理正常.在我的MyObject类中,我在属性的setter中将新值记录到Console,并看到显示的新值.
我尝试通过单击按钮隐藏文本,不知道如何完成:..
<script type="text/javascript">
$('.HideButton').click(
function () {
$('#disclaimer').hide();
}
);
</script>
Run Code Online (Sandbox Code Playgroud)
身体:
<p id="disclaimer" > DDDDDDDDDDDDDDDDDDDDDDDDDD</p>
<asp:Button ID="Button1" CssClass="HideButton" runat="server" Text="Hide" />
Run Code Online (Sandbox Code Playgroud)