我users在JS对象(不是数组)中有一个索引列表.它是React状态的一部分.
{
1: { id: 1, name: "John" }
2: { id: 2, name: "Jim" }
3: { id: 3, name: "James" }
}
Run Code Online (Sandbox Code Playgroud)
什么是最佳做法:
没有任何不可改变的帮助者.我正在使用Coffeescript和Underscore(所以_.extend没问题......).
谢谢.
我今天升级到Rails 4.1.0.跨站点请求伪造(CSRF)保护现在也涵盖了使用JavaScript响应的GET请求.
我在应用程序中有一些被机器人命中的远程GET链接,现在正在抛出ActionController :: InvalidCrossOriginRequest异常.
所以我在application_controller中添加了另一个rescue_from行:
rescue_from ActionController::InvalidCrossOriginRequest, with: :render_400
Run Code Online (Sandbox Code Playgroud)
这是render_400方法:
def render_400
render(nothing: true, status: 400) and return
end
Run Code Online (Sandbox Code Playgroud)
我仍然得到AbstractController :: DoubleRenderError,即使我添加and return了你可以看到上面.
它只发生在ActionController :: InvalidCrossOriginRequest异常中.其他类似于ActionController :: BadRequest,而不是导致AbstractController :: DoubleRenderError.
我想测试控制器创建和更新操作是否调用 MentionService 实例上的流程方法。
在控制器中我有 MentionService.new(post).process
这是我目前的规格:
it "calls MentionService if a post has been submitted" do
post = Post.new(new_post_params)
mention_service = MentionService.new(post)
expect(mention_service).to receive(:process)
xhr(:post, :create, company_id: company.id, remark: new_post_params)
end
Run Code Online (Sandbox Code Playgroud)
在控制器操作中,我有:
def create
...
# after save
MentionService.new(@remark).process
...
end
Run Code Online (Sandbox Code Playgroud)
我得到的是:
expected: 1 time with any arguments
received: 0 times with any arguments
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢。