简单的问题.如何将字符串传递给javascript函数并生成包含该字符串内容的弹出框警报?这就是我所拥有的:
test.html.erb文件.
<%= link_to 'Test','#', onclick: 'test(helloworld)', class: "btn btn-xs btn-primary" %>
Run Code Online (Sandbox Code Playgroud)
这是test.js文件:
function test(name){
alert(name);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我点击生成的"测试"链接时,"helloworld"不会弹出.什么都没发生.
我正在使用带有Ruby on Rails的Tinymce-Rails并试图弄清楚为什么除非我刷新页面,否则TinyMCE文本编辑框不起作用.
所以我已经按照所有文档来使它工作......但唯一的问题是它只在我第一次刷新页面后才有效.这是负责初始化TinyMCE的javascript
var ready;
ready = function(){
tinyMCE.init({
selector: "textarea.tinymce",
toolbar: ["styleselect | undo redo | bold italic underline | bullist | outdent indent"],
menubar: false,
statusbar: false,
style_formats: [{"title":"Headers","items":[{"title":"Header 1","format":"h1"},{"title":"Header 2","format":"h2"},{"title":"Header 3","format":"h3"}]},{"title":"Inline","items":[{"title":"Bold","icon":"bold","format":"bold"},{"title":"Italic","icon":"italic","format":"italic"},{"title":"Underline","icon":"underline","format":"underline"},{"title":"Code","icon":"code","format":"code"}]}],
content_css: "/assets/tinymce.css"
});
};
$(document).ready(ready);
$(document).on('page:load', ready);
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么当我第一次浏览页面时这实际上没有工作,但只能第二次工作?
所以我正在运行一个利用 redis 和 sidekiq 的 Rails 应用程序。该config/sidekiq.rb文件包含一些关于设置 Redis 池大小的信息,但我将其注释掉,以便 Sidekiq 可以动态确定(根据我的理解)。
因此,虽然我在后台运行了一些 sidekiq 作业,但一切正常。然而,大约 30 - 60 分钟后,sidekiq 似乎仍在运行,但它像每分钟一样吐出这个错误(猜测这是我的 sidekiq cron 作业的间隔):
2018-01-19T17:52:21.906Z 95551 TID-ovs5kqylg 错误:CRON JOB:MISCONF Redis 配置为保存 RDB 快照,但目前无法在磁盘上持久化。可以修改数据集的命令被禁用,因为这个实例被配置为在 RDB 快照失败时报告写入错误(stop-writes-on-bgsave-error 选项)。有关 RDB 错误的详细信息,请检查 Redis 日志。
2018-01-19T17:52:21.906Z 95551 TID-ovs5kqylg 错误:CRON 作业:/home/nutella/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/redis-4.0 .1/lib/redis/client.rb:119:in`调用'
为了解决这个问题,我必须终止 sidekiq 进程并重新启动它 30-60 分钟。
我一直在试图弄清楚如何让slack-ruby-clientgem 在我的 Ruby 脚本中工作,但显然我在 json 方面遇到了问题。
这是我得到的:
[user:ubuntu:~/Documents]$ irb 4:43PM/07.08
2.5.1 :001 > require 'slack-ruby-client'
Traceback (most recent call last):
11: from /home/user/.rvm/rubies/ruby-2.5.1/bin/irb:11:in `<main>'
10: from (irb):1
9: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
8: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
7: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require'
6: from /home/user/.rvm/gems/ruby-2.5.1/gems/slack-ruby-client-0.11.1/lib/slack-ruby-client.rb:13:in `<top (required)>'
5: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:90:in `require'
4: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:90:in `each'
3: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:91:in `block in require'
2: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/specification.rb:1434:in `activate'
1: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/specification.rb:2315:in `check_version_conflict'
Gem::LoadError (can't activate json-1.8.6, already activated json-2.1.0)
2.5.1 :002 > …Run Code Online (Sandbox Code Playgroud) 我有一个功能,可以简单地选择当前页面上的所有复选框,创建一个表单,然后自动提交。
我不想在每个视图上重复完全相同的 JavaScript 代码,而是尝试只拥有共享的部分代码。
这是我迄今为止所拥有的一切:
#views/shared/_delete_multiple_items.js.erb
alert("<%= random_variable %>");
Run Code Online (Sandbox Code Playgroud)
。
#views/users/index.html.erb
...
<script>
function deleteMulitpleUsers() {
<%= render 'shared/delete_multiple_items', :locals => {:random_variable => "Hello World" %>
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果我正确理解这个错误的话,Rails 似乎正在尝试在 HTML 中渲染部分内容:
缺少部分共享/_delete_multiple_items 与 {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :红宝石,:咖啡,:jbuilder]}。搜索于:
我尝试将其包含:formats => :js在渲染中,如下所示:
<%= render 'shared/delete_multiple_items', :locals => {:random_variable => "Hello World", :formats => :js %>
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误。
所以我name在添加索引时通过使用参数成功创建了连接表,但我不确定为什么当我尝试创建新迁移时这不起作用:
class CreateVMailCampaignScheduleHours < ActiveRecord::Migration[5.1]
def change
create_table :v_mail_campaign_schedule_hours do |t|
t.belongs_to :v_mail_campaign_schedule, foreign_key: true
t.string :day
t.time :start_hours
t.time :stop_hours
t.timestamps
end
add_index [:v_mail_campaign_schedule_hours, :v_mail_campaign_schedule_id], name: :v_mail_campaign_schedule_id
end
end
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
ArgumentError:表“v_mail_campaign_schedule_hours”上的索引名称“index_v_mail_campaign_schedule_hours_on_v_mail_campaign_schedule_id”太长;限制为 64 个字符
有什么建议?我以为我add_index会做到这一点,但显然不是。
我只是想导出我拥有的 Docker 映像,以便可以将其推送到另一个系统;但是,由于没有空间,我什至无法保存它:
$ docker save mycustomimage:latest -o nessus.tar
Error response from daemon: write /var/lib/docker/tmp/docker-export-255300778/f2881cc25962de53a9f4efdbf759e88c86bd183abf773477ebbd5ddebc229ae8/layer.tar: no space left on device
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行df -h,我可以确认我有超过 150GB 的可用空间:
$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 466Gi 275Gi 182Gi 61% 1290334 9223372036853485473 0% /
devfs 374Ki 374Ki 0Bi 100% 1296 0 100% /dev
/dev/disk1s4 466Gi 8.0Gi 182Gi 5% 8 9223372036854775799 0% /private/var/vm
map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net
map auto_home 0Bi 0Bi …Run Code Online (Sandbox Code Playgroud) 我有一个使用 Tmux 在远程系统上运行命令的脚本,有时它会由于 Tmuxlist-windows命令的运行方式而出错。例如,如果我在远程服务器上有两个 Tmux 会话:session1和session2。根据我是否在会话 1 或会话 2 中处于活动状态,tmux list-windows从Tmux外部运行会给出两个完全不同的结果:
这是一个例子:
[root:kali:]# tmux ls
session1: 2 windows (created Tue Nov 5 18:22:58 2019)
session2: 3 windows (created Wed Nov 6 18:21:04 2019)
[root:kali:]# tmux list-windows
0: zsh* (1 panes) [215x53] [layout 5de0,215x53,0,0,30] @28 (active)
1: tool (1 panes) [80x24] [layout 5963,80x24,0,0,33] @31
2: script- (1 panes) [215x53] [layout 5de4,215x53,0,0,34] @32
[root:kali:]# tmux a -t session1
[detached (from session session1)] …Run Code Online (Sandbox Code Playgroud) 现在,我的 ruby 代码如下所示:
case step
when 1
# step_two_function
when 2
# step_three_function
when 3
# step_four_function
end
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否可以将其存储在哈希中以使事情更简单一些?
例如,
h = {
1 => step_two_function,
2 => step_three_function,
3 => step_four_function,
}
Run Code Online (Sandbox Code Playgroud)
并且能够简单地使用类似h[step]. 似乎在 Ruby 中,函数在创建哈希的同时执行,而不是仅在调用键的值时执行。
这样做是否可行,如果可以,如何做?
在 python 中,您只需简单地执行以下操作:
>>> def lies(altons_var):
... print(altons_var)
...
>>> a[1] = lies
>>> a[1]('print me please')
print me please
Run Code Online (Sandbox Code Playgroud)
但这在 Ruby 中不起作用,因为在您调用函数的那一刻(无论是直接调用还是从散列调用),它都会执行该函数。
我有一个 30MB 的 XML 文件,开头包含一些乱码,因此通常我必须删除它,以便 Nokogiri 能够正确解析 XML 文档。
这是我目前拥有的:
contents = File.open(file_path).read
if contents[0..123].include? 'authenticate_response'
fixed_contents = File.open(file_path).read[123..-1]
File.open(file_path, 'w') { |f| f.write(fixed_contents) }
end
Run Code Online (Sandbox Code Playgroud)
但是,这实际上会导致 ruby 脚本两次打开大型 XML 文件。一次读取前 123 个字符,另一次读取除前 123 个字符以外的所有字符。
为了解决第一个问题,我能够做到这一点:
contents = File.open(file_path).read(123)
Run Code Online (Sandbox Code Playgroud)
但是,现在我需要从文件中删除这些字符而不读取整个文件。如何“修剪”该文件的开头而不必在内存中打开整个文件?
我一直在寻找有关如何做到的文章,但我找到了任何详细而直接的指示.我知道有很多与此有关的信息,但也许我只是不寻找合适的东西.
在我的域名的控制面板中,我添加blog.domain.com了转到我的网络服务器的IP地址.但是,在Apache的配置中,我希望能够指向blog.domain.com某个文件夹.
我需要修改哪个文件以及需要添加哪些文件?
我在这里最近发表了一篇文章,并在解决第一个问题后将其关闭,但仍然无法修复此问题。
我有一个带有“客户”,“项目”等链接的边栏。它们链接到相应的页面。但是,我希望能够为我单击的菜单项设置,无论是“项目”还是“客户”。
这是侧边栏HTML(轨道上的红宝石):
<div id="sidebar" class="sidebar-offcanvas">
<div class="col-md-12">
<h3></h3>
<ul class="nav nav-pills nav-stacked">
<li><%= link_to 'Customer Management', customers_path %></li>
<li><%= link_to 'Project Management', projects_path %></li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是HTML下方的JavaScript:
<script type='text/javascript'>
$(document).ready(function() {
$('#sidebar .nav-pills a').click(function() {
$('#sidebar .nav-pills li.active').removeClass('active');
$(this).parent().addClass('active');
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
当我单击“客户”页面时,没有任何反应。但是,如果将第一个<li>设置为活动类,则可以看到class =“ active” css样式应用于它。
这是它背后的CSS:
body,html,.row-offcanvas {
height:100%;
}
body {
padding-top: 50px;
}
#sidebar {
width: inherit;
min-width: 220px;
max-width: 220px;
background-color:#E6E5E5;
float: left;
height:100%;
position:relative;
overflow-y:auto;
overflow-x:hidden;
}
#main {
height:100%;
overflow:auto; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 docker buildx,并注意到除了一件事之外,一切似乎都很简单。我的 Dockerfile 需要根据架构提取某些包。
例如,这是 Dockerfile 的一部分:
FROM XYZ
# Set environment variable for non-interactive install
ARG DEBIAN_FRONTEND=noninteractive
# Run basic commands to update the image and install basic stuff.
RUN apt update && \
apt dist-upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" && \
apt autoremove -y && \
apt clean -y && \
...
# Install amazon-ssm-agent
mkdir /tmp/ssm && \
curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb && \
Run Code Online (Sandbox Code Playgroud)
从上面可以看出,该命令设置为使用硬编码链接拉取 Amazon SSM 代理。
解决这个问题的最佳方法是什么?我应该修改这个 Dockerfile 来创建一堆 if 条件吗?