相当简单的问题(我想过),但我遇到了一些问题:
在Rails 3.1.0.rc6/RSpec 2.6.0中,我正在尝试测试我的'产品'资源的路由,如下所示:
resources :products, :except => [:edit, :update]
Run Code Online (Sandbox Code Playgroud)
有效操作的路由有效,但我想确保编辑和更新路由不可调用.这是我正在尝试的:
it "does not route to #edit" do
lambda { get("/products/1/edit") }.should raise_error
end
Run Code Online (Sandbox Code Playgroud)
失败/错误:lambda {get("/ products/1/edit")}.应该raise_error预期异常但没有引发任何内容#./ spec /routing/products_routing_spec.rb:11:在`block(3 levels)in'
......然而,当我跑步的时候
it "does not route to #edit" do
get("/products/1/edit").should_not route_to("products#edit", :id => "1")
end
Run Code Online (Sandbox Code Playgroud)
我明白了
失败/错误:get("/ products/1/edit").should_not route_to("products#edit",:id =>"1")ActionController :: RoutingError:没有路由匹配"/ products/1/edit"
知道这里发生了什么吗?我猜这应该很简单,但我似乎无法弄明白.
什么是确保三个变量在ruby中都相等的最简洁方法?例如
dog = 'animal'
cat = 'animal'
chicken = 'animal'
shoe = 'clothing'
# Something like this...which doesn't work
dog == cat == chicken # true
dog == cat == shoe # false
Run Code Online (Sandbox Code Playgroud) 我有'作者'和'预订'表,加入了has_many:通过表'author_book'
据我所知,'author_book'表中的id主键字段没有任何意义......但在我提出这个想法之前,我只是想确认一下.那么,有没有理由将'id'列保留在has_many:through表中?
提前致谢...
ruby database-design ruby-on-rails primary-key has-many-through
我是一个React新手试图将React集成到Rails站点.我CommentForm在页面/ html的最顶部有一个组件Comments,在同一页面的底部有一个组件.目前,两者都是通过React-On-Rails的react_component方法呈现的.
问题是,一旦在提交表单CommentForm,我想改变this.state.comments的Comments部分.我很熟悉确保将状态冒泡到一个共同的父组件的想法,但是目前,这两个组件没有共同的父组件(或任何父组件).
所以,由于免责声明我一直在学习React 2天而且很可能很困惑,克服这类问题的最佳做法是什么?我看到的选项:
Comment从内部CommentForm或某些共享资源(例如:window范围)访问的状态属性,根据我的有限理解,它不是React Way我猜这是一个常见问题,但我不确定解决它的一般智慧是什么.任何想法都赞赏.
我最近从 Vim 切换到 VSCode,我正在尝试为通过 docker 运行的 jest 测试设置 VSCode 调试。
调试工作......有点。如果我想运行 Jest 测试并激活断点,我需要:
vscode-jest-tests下面的launch.json 任务开始运行相关的 jest 测试Docker: Attach To Node在测试套件命中断点之前快速执行显然不理想 - 我很想确保 VSCode 在运行时自动附加到调试器vscode-jest-tests。简而言之:在通过 Docker 运行 Jest 测试时,是否有一种简单的方法来附加 VSCode 调试器?
这是我当前的 launch.json 和 package.json 文件。非常感谢任何帮助:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Docker: Attach to Node",
"port": 9229,
"address": "localhost",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/www",
"protocol": "inspector"
},
{
"type": "node",
"request": "launch",
"name": "vscode-jest-tests",
"runtimeExecutable": "npm",
"runtimeArgs": …Run Code Online (Sandbox Code Playgroud) 希望有人可以通过Ruby和HTML在Vim中使用omnicomplete来解决一些非常不稳定的行为.
问题是Ctrl+ X Ctrl+ O似乎只返回非本地命令.方法和变量名称被省略.如果我输入Ctrl+ X Ctrl+,P它们会按预期显示,但omni只是没有提取它们.
一些东西:
--version确认Ruby in installed(+ruby)在.vimrc下面 - 任何帮助非常感谢
" Set backup directory so that .swp files aren't stored in work folders
set backup
set backupdir=$HOME/temp/vim_backups/
set directory=$HOME/temp/vim_swp/
filetype on
filetype off
call pathogen#runtime_append_all_bundles()
syntax on
filetype plugin indent on
" Necessary for lot of cool vim things
set nocompatible …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用RSpec,并且在编写嵌套资源的控制器测试时遇到一些困难.我试过谷歌搜索,但没有太多运气.
有人可以提供"PUT更新"测试测试的基本示例,以确保更新嵌套资源吗?只是详细说明,我有像这样测试的等效(非嵌套)资源:
def mock_post(stubs={})
@mock_post ||= mock_model(Post, stubs).as_null_object
end
...
describe "PUT update" do
describe "with valid parameters" do
it "updates the requested post" do
Post.stub(:find).with("14") { mock_post }
mock_post.should_receive(:update_attributes).with({'these' => 'params'})
put :update, :id => "14", :post => {'these' => 'params'}
end
end
end
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一段时间来正确地对一个嵌套在Post下的"Comment"模型进行类似测试,但没有任何乐趣.任何建议赞赏.
我已经使用Rails几个月了,我很乐意编写一个项目并根据我的需要操作Rails等.
最近我一直在努力提高一点,所以我试图修改/添加现有的rails代码库:添加新的表单助手方法,添加一个responds_to:pdf方法等等...我一直在有很多问题.
困难在于学习我需要修改的代码; 该代码所在的位置,以及如何确保我不会错过其他文件中的相关代码.我猜这是人们学会这样做的一种方式,但目前我大多只是猜测和希望.
我想我的问题是,Rails的人们如何去了解他们需要修改的代码在哪里编辑以及编辑它的方法?看起来这只是你需要从先前的熟悉程度中知道的东西,但我猜测必须有一个简单的方法来理解编辑的位置(以及什么).
任何想法都赞赏...欢呼
在Linux上使用几年后,我只是干涉OSX.有很多我喜欢的东西,但是让我失望的一件事是,如果我通过快捷方式/聚光灯/快速银行运行'terminal'命令,它会把我带到已经有一个终端实例打开的任何空间中的任何现有终端.
我经常喜欢弹出一个终端,运行一个快速命令,然后再次关闭它,一直呆在我碰巧在的任何桌面空间.
...那么,我怎么在Mac上这样做?
干杯...
我正在尝试运行以下规范
describe "POST create" do
describe "with valid params" do
it "redirects to the created banner" do
post :create, :banner => valid_attributes
response.should redirect_to(admin_banner_url(Banner.last))
end
end
end
def valid_attributes
demo_image = File.open(File.join(Rails.root, "spec", "samples", "laptop1.jpg"))
{
:name => 'Test Spec Banner',
:bannerimage => demo_image
}
end
Run Code Online (Sandbox Code Playgroud)
创建在validates_presence_of上验证失败:bannerimage - 我将其缩小如下:
如果有人对帖子失败的原因有任何想法,我会非常感激.我猜测(并且原谅 - 我没有查看'post'命令的内部工作情况,可能在这里),它在调用接受文件(?)时缺少某种"multipart"参数. .不能通过谷歌找到任何东西.
任何想法都赞赏 - 我完全被难过了.
控制器是完全未经修改的Rails 3.1脚手架资源.型号如下.
class Banner < ActiveRecord::Base
# attr_accessible :name, :url, :bannerimage
has_attached_file :bannerimage, :styles …Run Code Online (Sandbox Code Playgroud)