小编Chr*_*s C的帖子

语法检查或"编译"Ruby on Rails应用程序

我是Ruby的新手,最近遇到了一个与创建Ruby on Rails应用程序时的值相比较的问题.在控制器中,我有以下语句总是返回false:

if (user.id != params[:id])
Run Code Online (Sandbox Code Playgroud)

问题是user.id(它是一个Active Record)是一个整数,params [:id]是一个字符串.我花了一段时间来弄清楚这一点,最后我把它改为:

if (user.id != params[:id].to_i)
Run Code Online (Sandbox Code Playgroud)

现在该声明按预期工作.

为了避免将来出现这种错误,有没有办法"编译"或让Ruby在你尝试比较2种不同的类型时发出警告?我遇到的其他一些我想要"编译检查"的问题是:

  • 如果我创建变量但不使用它,请警告我.帮助检查变量名称中的拼写错误.
  • 确保一个方法存在于一个类中,这样我就可以避免方法名称拼写错误,也可以帮助重构,例如,如果我重命名一个方法.

我目前正在Windows上使用带有Rails 2.3.2和RadRails IDE的Ruby 1.8.6-27 RC2.

ruby compilation ruby-on-rails syntax-checking

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

流利的NHibernate CheckProperty和日期

我设置了一个NUnit测试:

new PersistenceSpecification<MyTable>(_session)
    .CheckProperty(c => c.ActionDate, DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

当我通过NUnit运行测试时,我收到以下错误:

SomeNamespace.MapTest: 
System.ApplicationException : Expected '2/23/2010 11:08:38 AM' but got 
'2/23/2010 11:08:38 AM' for Property 'ActionDate'
Run Code Online (Sandbox Code Playgroud)

ActionDate字段是SQL 2008数据库中的日期时间字段.我使用自动映射并将ActionDate声明为C#中的DateTime属性.

如果我改变测试使用DateTime.Today测试通过.

我的问题是为什么测试失败了DateTime.Now?将日期保存到数据库时NHibernate是否会失去一些精确度,如果是这样,如何防止丢失?谢谢.

unit-testing date fluent-nhibernate

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

确定字符串的结尾是否与单独字符串的开头重叠

我想找到一个字符串的结尾是否与单独字符串的开头重叠.例如,如果我有这两个字符串:

string_1 = 'People say nothing is impossible, but I'
string_2 = 'but I do nothing every day.'
Run Code Online (Sandbox Code Playgroud)

如何找到"but I"末尾的部分string_1与开头相同string_2

我可以编写一个循环遍历两个字符串的方法,但我希望得到一个我错过的Ruby字符串方法或Ruby习语的答案.

ruby

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

在Rails中预加载鼠标悬停图像

我目前在rails中实现了一个翻转按钮,如下所示:

<%= image_tag("header/home_but.gif", :mouseover => "header/home_over.gif") %>
Run Code Online (Sandbox Code Playgroud)

如何预加载/缓存鼠标悬停图像(home_over.gif),以便用户将鼠标移动到图像上时没有延迟?感谢名单.

javascript rollover ruby-on-rails mouseover

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

Python 控制台提示在 PyCharm 中显示 In[] Out[] 而不是 &gt;&gt;&gt;

我正在协助 Python 入门课程,其中一名学生的命令提示符如下所示:

In[0]: 1 + 2
Out[0]: 3
Run Code Online (Sandbox Code Playgroud)

而不是通常的:

>>> 1 + 2
3
Run Code Online (Sandbox Code Playgroud)

我们如何让她回到通常的“>>>”提示?她正在使用 PyCharm 在 Windows 上运行 Python 3.6。

python pycharm python-3.x

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

将参数传递给 Rails 单元测试

我想知道是否有一种方法可以将参数传递给与 NUnit 的TestCase Attribute类似或想法相似的 rails 中的单个测试。谢谢

nunit unit-testing ruby-on-rails

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

更改 Xamarin Android 复选框的大小

我正在尝试更改 Xamarin Forms 应用程序中 Android 复选框的大小。首先介绍一下背景。我在 Xamarin Forms 中为复选框设置了一个自定义控件,如下所示:

public class CheckBox : View
{
    public static readonly BindableProperty IsCheckedProperty =
        BindableProperty.Create(nameof(IsChecked), typeof(bool), typeof(CheckBox), false, propertyChanged: IsCheckedChanged);

    // Other properties...
}
Run Code Online (Sandbox Code Playgroud)

在 Android 项目中,我的渲染器如下所示:

[assembly: ExportRenderer(typeof(CheckBox), typeof(CheckBoxRenderer))]
namespace SmallVictories.Droid.Controls
{

    internal class CheckBoxRenderer : ViewRenderer<CheckBox, Android.Widget.CheckBox>
    {
        protected override void OnElementChanged(ElementChangedEventArgs<CheckBox> e)
        {
            if (Control == null)
            {
                _nativeControl = new Android.Widget.CheckBox(Context);
                SetNativeControl(_nativeControl);
            }

            // Other setup...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我使用页面上的复选框,如下所示:

<StackLayout Orientation="Horizontal" BackgroundColor="White" Padding="5" Margin="0" HorizontalOptions="FillAndExpand">
    <controls:CheckBox HorizontalOptions="Start" WidthRequest="25" …
Run Code Online (Sandbox Code Playgroud)

xamarin.android android-checkbox

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