小编Mar*_*jka的帖子

如何在React状态下更新对象

users在JS对象(不是数组)中有一个索引列表.它是React状态的一部分.

{
    1: { id: 1, name: "John" }
    2: { id: 2, name: "Jim" }
    3: { id: 3, name: "James" }
}
Run Code Online (Sandbox Code Playgroud)

什么是最佳做法:

  1. 添加一个新用户{id:4,名称:"Jane"},其中id(4)为关键
  2. 删除ID为2的用户
  3. 将用户#2的名称更改为"Peter"

没有任何不可改变的帮助者.我正在使用Coffeescript和Underscore(所以_.extend没问题......).

谢谢.

javascript coffeescript reactjs

17
推荐指数
2
解决办法
6900
查看次数

从InvalidCrossOriginRequest中抢救时Rails 4.1中的DoubleRenderError

我今天升级到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.

ruby-on-rails

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

控制器中对象方法调用的Rspec测试

我想测试控制器创建和更新操作是否调用 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)

有任何想法吗?谢谢。

rspec ruby-on-rails

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

标签 统计

ruby-on-rails ×2

coffeescript ×1

javascript ×1

reactjs ×1

rspec ×1