在vim/gvim中,我希望能够移动到当前搜索查找的前端和末尾.这可能吗?
例如,使用此文件:
A dog and a cat
A hat and a bat
Run Code Online (Sandbox Code Playgroud)
我希望能够执行搜索,例如/dog\sand
,然后能够从'dog and'表达式的开头移动到结束和返回,以便我的光标从第3列开始,在字母'd'下面单词'dog'然后移到第9列的字母'd'或单词'and'.
我希望能够这样做的原因是我可以搜索表达式然后使用更改命令c
,并结合移动命令来替换该特定搜索表达式.我不想在这里使用substitue和替换,我想使用change命令和移动键来执行此操作.
我试图测试一个简单的索引视图,其中包含以下代码:
- if can? :destroy, MyModel
%th Options
Run Code Online (Sandbox Code Playgroud)
MyModelsController
有以下选项(继承资源+ CanCan + Devise):
class MyModelsController < ApplicationController
inherit_resources
nested_belongs_to :mymodel
before_filter :authenticate_user!
load_and_authorize_resource :project
load_and_authorize_resource :mymodel, :through => :project
Run Code Online (Sandbox Code Playgroud)
运行规格时,它会在该行崩溃 - if can? :destroy, MyModel
Failure/Error: render
ActionView::Template::Error:
undefined method `authenticate' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
没有追溯,没有任何依据......
我想也许在测试视图时我没有被授权和签名,但是Devise::TestHelpers
应该只包含在控制器测试中(这就是我的方法).
我试图覆盖方法可以吗?在两者Ability
和控制器中,但没有产生任何影响.
我使用的是Ruby 1.9.2,Rails 3.0.4/3.0.5和Phusion Passenger 3.0.3/3.0.4.我的模板是用HAML编写的,我使用的是MySQL2 gem.我有一个控制器动作,当传递一个具有特殊字符的参数,如变音符号,给我以下错误:
ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT)
Run Code Online (Sandbox Code Playgroud)
该错误指向我的HAML模板的第一行,其中包含以下代码:
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
我的理解是,这是因为我有一个UTF-8字符串与ASCII-8BIT字符串连接,但我不能在我的生活中找出ASCII-8BIT字符串是什么.我已经检查过动作中的参数是使用UTF-8编码的,我已经添加了一个编码:UTF-8声明到HAML模板的顶部和ruby文件,我仍然得到这个错误.我的application.rb文件中也有一个config.encoding = "UTF-8"
声明,以下所有结果都是UTF-8:
ENV['LANG']
__ENCODING__
Encoding.default_internal
Encoding.default_external
Run Code Online (Sandbox Code Playgroud)
这是踢球者:我无法在开发或生产中使用独立乘客或杂种在我的Mac-OSX上本地重现此结果.我只能在linux上运行nginx + passenger的生产服务器上重现它.我已经在生产服务器的控制台中验证了后面提到的命令也都是UTF-8.
您是否遇到过同样的错误?您是如何解决的?
我在尝试从每一行中删除第一列时遇到问题.我有一个感觉,这是我对jquery的理解.
我尝试了以下内容.
$("table:eq(2) tr td:first").remove() // this only removed the first cell
$("table:eq(2) tr td:first").each.remove() // didn't notice a difference
Run Code Online (Sandbox Code Playgroud)
我做错了什么想法?
我将通过Michael Hartl的Ruby on Rails教程,和他一样,使用TextMate作为我的编辑器.今天,在他的教程的第3章中,我看到他在TextMate中做了一些我之前没见过的事:
当他在名为"whatever.html"的文件中键入标签时,标签会动态更新并创建相应的结束标记.因此,作为一个例子,如果他输入了<ht
,那么TextMate会自动创建<html></html>
,显然是在运行中.
我找到了自动完成标签的按键,但这有点不同.有任何想法如何做到这一点?
我在我的rails应用程序中有一个简单的视频模型has_many
评论.我在视频的节目页面上显示这些评论.当我提交表格时,一切正常; 但是,如果评论模型上存在验证错误,那么我的系统就会爆炸.如果评论模型上存在验证错误,我只想再次渲染视频的显示页面,并显示验证错误样式.如何在我的创建操作中执行此操作?非常感谢!
class CommentsController < ApplicationController
def create
@video = Video.find(params[:video_id])
@comment = @video.comments.build(params[:comment])
if @comment.save
redirect_to @video, :notice => 'Thanks for posting your comments.'
else
render # what? What do I render in order to show the video page's show action with the validation error styling showing? Please help!
end
end
end
Run Code Online (Sandbox Code Playgroud) 我正在修复客户端应用程序中的一些批量分配漏洞,我想确保Rails不会默默地丢弃大规模分配受保护属性的尝试.相反,我想抛出一个异常,所以我可以调查.
即,每当这通常出现在日志中时:
WARNING: Can't mass-assign these protected attributes: ...
Run Code Online (Sandbox Code Playgroud)
我想抛出异常(或者另外)
编辑:我正在使用Rails 2.3.4
我正在学习rails 3,想知道我应该先掌握哪些助手?
即最常使用哪些?
1. form_for
2. ??
..
..
Run Code Online (Sandbox Code Playgroud) 有人能够阐明为什么Valgrind将这个程序归类为"绝对丢失:1个块中的2个字节"内存泄漏?我理解注释行解决了这个问题,但我不明白这个分类.根据Valgrind文档,似乎内存泄漏应归类为"间接可访问".我也很好奇为什么这甚至被认为是内存泄漏,并希望得到解释.即使程序在main
函数结束时终止,手动释放所有内容也是一种好习惯吗?
#include <stdlib.h>
struct wrapper {
char *data;
};
char *strdup(const char *);
struct wrapper *walloc(struct wrapper *root)
{
if (root == NULL){
root = (struct wrapper *) malloc(sizeof(struct wrapper));
root->data = strdup("H");
}
return root;
}
int main(){
struct wrapper *root;
root = NULL;
root = walloc(root);
//free(root->data);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是Valgrind输出:
$ valgrind --leak-check=full ./leak
==26489== Memcheck, a memory error detector
==26489== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==26489== Using Valgrind-3.10.0 …
Run Code Online (Sandbox Code Playgroud) 我使用带有Rails 3的脚手架创建了2个模型.模型是位置和作业,每个作业都有一个位置.
我在脚手架生成代码中创建了所需的引用调用,但是当我查看视图以创建新作业时,我看到的只是一个文本框,我应该添加location_id.
我怎样才能将其作为下拉菜单而不是更好的用户体验?
任何想法为什么这不起作用,我得到一个NoMethodError
当我尝试运行下面的代码通过rails runner
.
也许我正在调用rails runner,对Rails来说不好意思!
文件位置:
/app/scripts/data_import.rb
Run Code Online (Sandbox Code Playgroud)
命令:
rails runner -e development DataImport.say_hi
Run Code Online (Sandbox Code Playgroud)
错误:
undefined method `say_hi' for DataImport:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
码:
class DataImport
def say_hi
puts "hi"
end
end
Run Code Online (Sandbox Code Playgroud) 我有一个ChatController
和@user
它的变量.在我显示的主页面上@user.name
.我也有破坏和创建使用ajax的方法,所以当我从聊天中删除一条消息时,@user
变为零.为了防止问题调用name
nil对象,我可以添加@user=User.find_by_id(:user_id)
到每个方法.但如果我有很多方法,这就变得乏味了.我可以申报@user=User.find_by_id(:user_id)
一次并干掉我的代码吗?
ruby ×5
activerecord ×1
associations ×1
attributes ×1
autocomplete ×1
c ×1
cancan ×1
controller ×1
devise ×1
html ×1
jquery ×1
macvim ×1
memory-leaks ×1
passenger ×1
render ×1
rspec ×1
ruby-1.9.2 ×1
textmate ×1
valgrind ×1
vim ×1