我有以下型号
class Post < ActiveRecord::Base
belongs_to :user, :counter_cache => true
belongs_to :subtopic
end
class Subtopic < ActiveRecord::Base
belongs_to :category
has_many :posts, :dependent => :destroy
end
class Category < ActiveRecord::Base
has_many :posts, :through => :subtopics
has_many :subtopics, :dependent => :destroy
end
Run Code Online (Sandbox Code Playgroud)
在帖子/索引页面中,我想为列标题添加可点击排序.这很好,除了我显示两个级别的一些信息:
我希望表格的"类别"列可以点击,这样我就可以显示按类别排序的所有帖子.不幸的是,当我构建查询的"order by"部分时,我似乎无法为类别名称工作.我可以深入一级
@posts = Post.includes(:user, :subtopic => :category).paginate(:page =>1, :order => 'subtopics.name ASC')
Run Code Online (Sandbox Code Playgroud)
这将返回我想要的结果.当我尝试更深入一级时
@posts = Post.includes(:user, :subtopic => :category).paginate(:page =>1, :order => 'subtopic.categories.name ASC')
Run Code Online (Sandbox Code Playgroud)
我得到PGError: ERROR: schema "subtopic" does not exist.多个子主题给出了相同的错误.我觉得我错过了一些明显的东西.有人能说出来吗?
旁注:味道不好警报.我知道.如果你有关于如何使这个代码更清洁的建议,那将是非常受欢迎的.我知道得墨忒耳定律,但我不知道如何在不破坏它的情况下得到我想要的最终结果. …
我正在使用vim进行搜索并替换为此命令:
%s/lambda\s*{\([\n\s\S]\)*//gc
我试图在a之后匹配所有单词,endline和whitespace字符{.例如,此行的整体应匹配:
lambda {
FactoryGirl.create ...
Run Code Online (Sandbox Code Playgroud)
相反,它只匹配换行符,之前没有空格FactoryGirl.我之前尝试过手动替换所有空格,以防万一有替代字符,但没有骰子.任何人都可以解释为什么这不起作用?
我的自制安装ag失败了:
$ ag
dyld: Library not loaded: /usr/local/lib/libpcre.1.dylib
Referenced from: /usr/local/bin/ag
Reason: image not found
Trace/BPT trap: 5
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来解决这个问题?
我在代码中有一些文档,我想要很好地格式化:
# book_id - integer
# chapter_id - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the book's url
# view_count - integer
Run Code Online (Sandbox Code Playgroud)
我安装了Tabular.vim,这让我走得很远:
# book_id - integer
# chapter_id - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the book's url
# view_count - integer
Run Code Online (Sandbox Code Playgroud)
我想要一些自动生成这样的代码的方法.也就是说,包裹到79个字符,如果从前一个注释继续一行,则缩进.我得到的是这个:
# book_id - integer
# chapter_id - integer (Optional)
# relative_url - Text: the url of the …Run Code Online (Sandbox Code Playgroud) 我正在使用以下正则表达式验证我的一个模型
validates :login,
:format => {:with => /[A-Za-z][A-Za-z0-9_]+/}
Run Code Online (Sandbox Code Playgroud)
我的一个测试失败了,因为这个正则表达式匹配这个字符串,并将其传递为有效
a+df
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
在vim中,输入:buffers和一些其他命令显示结果页面.这个页面感觉像一个残缺的正常模式,因为h,j,k和l可以导航,但其他命令如ctrl-u和ctrl-d则不能.可视模式也不能用于在此模式下选择文本.
这种模式的名称是什么?
如问题中所述,我的vim以删除模式开始.如果我打开一个文件并点击j开始导航,那将删除第一行.
我把这个问题分解到了我的这行.vimrc:
nnoremap <silent> <esc> :noh<return><esc>
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这甚至会触发删除模式.最重要的是,我相信我添加<silent>了指示vim进行绑定而不执行它,这似乎并非如此.
为什么会发生这种情况的原因是什么?
(注意,这个映射是告诉vim在我点击esc时清除搜索亮点)
现在我在我的控制器中有这个:
def index
@votes = Vote.paginate(:page => params[:page], :order=>"created_at DESC")
end
Run Code Online (Sandbox Code Playgroud)
但我正在考虑将.paginate移动到views/index.html.erb(或该目录中的部分).Paginate在我看来它似乎属于View,因为它管理投票集合的显示方式.我是否正确理解MVC分离?