小编sam*_*ker的帖子

使用Webpacker从Rails控制器渲染js

刚用替换了Rails应用程序中的js管道webpacker

大多数事情都能正常工作,但是呈现js的控制器不再能按预期工作。

def action
  format.js { render "javascript_partial" }
end
Run Code Online (Sandbox Code Playgroud)

通常,上面的代码会在我的视图中执行一个文件,javascript_partial.js.erb或者action.js.erb在中未指定的话render

问题似乎是这些文件没有与webpacker管道的连接,因此无法访问类似的全局库jquery或无法对其进行显式管理imports

现在,此代码会导致客户端语法错误,因为它无法访问jquery $函数:

$("#element").html(<= j render partial: 'partial', locals: { object: @object } %>
Run Code Online (Sandbox Code Playgroud)

我认为行内js有一个相关问题。类似以下内容

<%= form.collection_select ... onchange: 'Rails.fire(this.form, "submit")' %>
Run Code Online (Sandbox Code Playgroud)

不再起作用,因为内联js无法访问诸如之类的全局对象Rails

这似乎是一个简单的问题,但是我在任何地方都找不到文档。

有谁能使webpacker与历史上预期的Rails / js行为保持一致?我需要带回来sprockets吗?


如果有帮助,我的javascript/packs/application.js文件看起来像这样,

import Rails from 'rails-ujs';
import Turbolinks from 'turbolinks';

Rails.start();
Turbolinks.start();

$(document).on("turbolinks:load", () => {
  // initial setup ...
});
Run Code Online (Sandbox Code Playgroud)

上面的方法工作得很好,并且可以访问, …

javascript ruby-on-rails erb ecmascript-6 webpack

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

在内存占用空间小的情况下调整iPhone上的UIImage大小

我已经看过几十次问这个问题但从未回答过.

你如何调整UIImage的大小(特别是从UIImagePickerController相机返回的).当我尝试任何方法时,我会得到20到40MB的内存峰值.它确实消失但我知道在某些硬件上这是完全不可接受的.

我尝试过使用以下操作的方法:drawInRect:,CGContextDrawImage(),imageWithCGImage:scale:orientation:

我知道生活在内存中的未压缩图像比磁盘上占用更多空间,但似乎最常见的UIImage调整大小操作涉及创建图像数据的副本.

即使Apple建议立即调整相机拍摄的照片大小.然而(b/c我相信他们知道这个话题非常复杂)他们没有就如何管理它提供任何指导.特别是在返回图像数据的时候该怎么做.

有没有人有一个平滑的方法来调整大型UIImage的大小,同时节省内存?我知道这是一项艰巨的任务.

iphone memory-management uiimagepickercontroller uiimage

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

如何在TypeScript中定义Partials数组?

例如,

type User = {
  first_name: string,
  last_name: string,
  notes: string
}
Run Code Online (Sandbox Code Playgroud)

以下哪项可行?

const users:Partial<User>[] = [{first_name: "Name"}]; // A

const users:Partial<User[]> = [{first_name: "Name"}]; // B

const users:[Partial<User>] = [{first_name: "Name"}]; // C
Run Code Online (Sandbox Code Playgroud)

奇怪的是,所有这些在编译时似乎都是有效的TypeScript.

提前致谢.

typescript typescript-typings typescript2.0

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

Apache 2.4 中所有大写的 HTTP 标头都去掉了下划线

我有一个应用程序依赖于发送全部大写加下划线的 HTTP 标头以及请求。

从Apache 2.4开始,

包含无效字符(包括下划线)的标头现在会被静默删除

此页面建议您可以更改一些设置,以允许不删除旧的 HTTP 标头(即,如果在 CURL 中设置它们,那么它们将显示在 PHP 中的 $_SERVER 数组中),但它没有说如何。我尝试将以下内容添加到我的 HTACCESS 文件中,

SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1 RequestHeader 设置 Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding

但这似乎没有帮助。有其他人在从 Apache 2.2 迁移到 2.4 时经历过这种情况吗?

php apache hosting http http-headers

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

您可以调用 Jbuilder 来创建本机 Rails 对象而不是呈现的字符串吗?

我的 Rails 应用程序通过 Action Cable 广播一组记录,

ActionCable.server.broadcast 'model_channel', models: (ApplicationController.render 'models/index.json', assigns: { models: Model.all })

我打电话ApplicationController.render以确保jbuilder被调用(我在models/index.json.jbuilder文件中添加自定义字段)。

一切正常,除了broadcast参数被转换为字符串,因此我需要调用JSON.parse(data['models'])以便在 JavaScript 处理程序中使用数据。

我可以在 Ruby 端做些什么来避免对我的有效负载进行字符串化然后在客户端解析它?

javascript json ruby-on-rails jbuilder actioncable

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

有什么方法可以隐藏Rails Jbuilder模板中的属性?

我知道您可以像这样显式列出字段,

json.(model, :field_one, :field_two, :field_three)
Run Code Online (Sandbox Code Playgroud)

但是有什么类似的东西,

json.(model, except: :field_two)
Run Code Online (Sandbox Code Playgroud)

哪一个将输出所有模型字段,除了被调用的那个?

ruby json ruby-on-rails jbuilder ruby-on-rails-5

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