是否有任何Rails 4兼容的表单构建器gem可以为Twitter Bootstrap 3.0.0表单提供全面的支持?
这是我认为"全面"支持的基准:
有关TWBS3表单的详细信息,请参阅TWBS3 文档和WIP github问题.
我已经看过simple_form和twitter_bootstrap_form_for,虽然两者都取得了进展,但目前似乎都没有提供足够的解决方案.
简单的形式
看起来有一个基本布局的解决方案,但是由于TWBS3需要额外的网格标记,我目前无法看到水平形式.
https://github.com/plataformatec/simple_form/pull/864 https://github.com/plataformatec/simple_form/issues/857
Twitter引导表单
这个拉取请求看起来很有希望,但我可以看到标记和正在使用的类中存在一些不准确之处.
https://github.com/stouset/twitter_bootstrap_form_for/pull/84
ruby-on-rails formbuilder twitter-bootstrap twitter-bootstrap-3
我正在尝试测试一个指向destroy操作的链接会抛出一个confirm带有正确消息的本机浏览器框.
使用rails'生成链接link_to:
link_to 'Delete', user_path, method: :delete, data: { confirm: "Are you sure?" }
Run Code Online (Sandbox Code Playgroud)
并生成以下html:
<a data-confirm="Are you sure?" data-method="delete" href="/users/6" rel="nofollow">Delete</a>
Run Code Online (Sandbox Code Playgroud)
该功能在浏览器中正常工作,但我想在我的rspec功能规范中测试它.
我试图在这里和这个要点中confirm描述浏览器的功能,但是我无法让它工作.
it 'requests confirmation', js: true do
visit user_path(user)
page.execute_script "
window.confirmMsg = null;
window.confirm = function(msg) { window.confirmMsg = msg; return true; };"
click_link 'Delete'
expect(page.evaluate_script('window.confirmMsg')).to eq('Are you sure?')
end
Run Code Online (Sandbox Code Playgroud)
给出以下错误rspec:
Failure/Error: expect(page.evaluate_script('window.confirmMsg')).to eq('Are you sure?')
expected: "Are you sure?"
got: nil
(compared …Run Code Online (Sandbox Code Playgroud) 我有一个Rails 5应用程序,带有PostgreSQL 9.6数据库.
应用程序具有Report模型,具有department_ids数组字段,其定义schema.rb如下:
t.integer "department_ids", default: [], array: true
Run Code Online (Sandbox Code Playgroud)
我需要编写一个返回报表行的查询,其中department_ids列包含一组或多组给定的department_id.
我目前的解决方法是在Ruby中执行以下操作:
department_ids = [2, 5]
reports = Report.all.select do |report|
(report.department_ids & department_ids).any?
end
Run Code Online (Sandbox Code Playgroud)
然而,使用select具有返回的缺点Array而不是ActiveRecord::Relation,这意味着我需要将过滤后的结果水合回到ActiveRecord::Relation对象中.
Report.where(id: reports.map(&:id))
Run Code Online (Sandbox Code Playgroud)
我想避免这一步,并在一个查询中处理这一切.
如何用Active Record编写这样的查询?
arrays postgresql activerecord ruby-on-rails rails-activerecord
据我所知,这是用于编辑和更新资源的标准rails模式.
我有一个用于编辑操作的GET路由/users/:id/edit以及用于更新操作的PUT和PATCH路由/users/:id.
这是我的控制器动作:
def edit
@user = User.find params[:id]
end
def update
@user = User.find params[:id]
if @user.update_attributes(user_params)
redirect_to @user, success: "Changes saved"
else
flash.now.alert = "Unable to change account details"
render :edit
end
end
Run Code Online (Sandbox Code Playgroud)
我在我的表单部分中使用默认的form_for:
<%= form_for @user do |f| %>
Run Code Online (Sandbox Code Playgroud)
这是在html中创建以下表单:
<form accept-charset="UTF-8" action="/users/1" id="edit_user_1" method="post">
...
<input name="_method" type="hidden" value="patch">
Run Code Online (Sandbox Code Playgroud)
当update_attributes正确重定向用户调用时,无论何时调用失败(由于ActiveRecord验证),渲染操作都会正确显示编辑视图,但用户浏览器中的路径将更/users/1/edit改为/users/1.
根据我的阅读,这似乎是rails的预期行为,但这似乎让我感到困惑,因为我认为REST背后的核心思想是URL是指资源的规范视图?
如果我redirect_to对编辑操作而不是render那个url是应该的,但是我丢失了表单上的错误消息.
在使用redirect_to之前,是否有更明智的方法来保留URL和错误消息,而不是将错误转储到会话中?如果可以,我想避免这样做.
更新:
我希望URL保持(以及错误)的原因是因为我正在使用current_page?在导航中设置活动状态.因此,如果表单提交错误,菜单中的"编辑"操作将失去突出显示.
在谷歌主页思路的特点是歪曲的一些文字,并用静态音效按钮的外观,以模拟为内容的转变,从一个项目到下一个信号干扰的动画.
这是一个Gif,以防他们改变设计:

他们如何实现这一目标?我可以看到开发工具中的类和样式,所以JavaScript肯定会涉及到,但我找不到脚本本身的相关部分.
我在ansible playbook中有以下dict结构变量:
apache_vhosts:
- name: foo
server_name: foo.com
server_aliases:
- a.foo.com
- b.foo.com
- c.foo.com
- name: bar
server_name: bar.com
server_aliases:
- d.bar.com
- e.bar.com
- f.bar.com
Run Code Online (Sandbox Code Playgroud)
我需要为每个域server_name和server_aliases域创建一个符号链接,例如:
/tmp/foo.com -> /var/www/foo
/tmp/a.foo.com -> /var/www/foo
/tmp/b.foo.com -> /var/www/foo
/tmp/c.foo.com -> /var/www/foo
/tmp/bar.com -> /var/www/bar
/tmp/d.bar.com -> /var/www/bar
/tmp/e.bar.com -> /var/www/bar
/tmp/f.bar.com -> /var/www/bar
Run Code Online (Sandbox Code Playgroud)
我有以下任务适用于server_name:
- name: Add a domain symlinks /tmp for server_name.
file:
src: "/var/www/{{ item.name }}"
dest: "/tmp/{{ item.server_name }}"
state: link
with_items: …Run Code Online (Sandbox Code Playgroud) 我正在使用nightwatch.js对应用程序进行端到端测试,但无法验证复选框的状态.
我attributeEquals()用来验证是否选中了复选框:
module.exports = {
"Checkbox is checked" : function (client) {
client
.url(client.launch_url)
.useCss()
.waitForElementVisible("body", 1000)
.verify.attributeEquals('#a_checkbox', 'checked', 'true') // quotes necessary
.end();
}
};
Run Code Online (Sandbox Code Playgroud)
但我还需要验证是否未选中复选框.
要做到这一点,我尝试attributeEquals()再次使用,有各种期望:
module.exports = {
"Checkbox is not checked" : function (client) {
client
.url(client.launch_url)
.useCss()
.waitForElementVisible("body", 1000)
.verify.attributeEquals('#b_checkbox', 'checked', null)
.verify.attributeEquals('#b_checkbox', 'checked', 'null')
.verify.attributeEquals('#b_checkbox', 'checked', 'false')
.verify.attributeEquals('#b_checkbox', 'checked', false)
.verify.attributeEquals('#b_checkbox', 'checked', '')
.end();
}
};
Run Code Online (Sandbox Code Playgroud)
但它们都会失败,并显示一条消息,指出该checked属性不存在:
Running: Checkbox is not checked
? Element …Run Code Online (Sandbox Code Playgroud) 我希望能够将更改的内容与加密的内容进行比较config/credentials.yml.enc。
git diff仅显示加密文件内容的区别。我想看看明文的变化。
如何获得config/credentials.yml.enc文件的可读差异?
我有一个以下格式的日期字符串,Jul 27 23:59:59 2016 GMT我需要使用OS X BSD date命令将其转换为等效的纪元时间戳.
GNU date有一个很好的-d/ --date=STRING参数:
$ date -d "Jul 27 23:59:59 2016 GMT" +'%s'
1469663999
Run Code Online (Sandbox Code Playgroud)
dateOSX上的BSD 命令遗憾地没有这样的选项.
date -j -f "<FORMAT>" "Jul 27 23:59:59 2016 GMT" +'%s'似乎是要走的路,但我找不到写格式字符串.Apple的手册页指出:
date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
can be used to parse the output from date and express it in Epoch time.
Run Code Online (Sandbox Code Playgroud)
但这似乎并非如此:
$ date -j -f "%a %b %d %T %Z …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的.ssh/config文件中创建一个SSH别名,它将匹配任何结束.vpn的主机并将主机名扩展为[name].vpn.domainname.com
我可以通过指定主机来匹配任何.vpn域,Host *.vpn但是我在扩展域时遇到了问题.
理想情况下,我想要的东西:
Host *.vpn
HostName $HOST.domainname.com
Run Code Online (Sandbox Code Playgroud)
我看了一下,但我找不到像这样的SSH别名的任何例子.
http://collectiveidea.com/blog/archives/2011/02/04/how-to-ssh-aliases/ http://osxdaily.com/2011/04/05/setup-ssh-config-fie/
这种别名是否可以使用SSH别名?如果是这样,怎么办呢?如果没有,任何其他想法我怎么能达到这个结果?
我真的想停止输入完整的域名,并且不必为vpn上的每台机器添加50个左右的别名.
我正在调试一些Ruby代码并遇到一些我不熟悉的东西.
user_array = user_array.send(:[], hash_key)
Run Code Online (Sandbox Code Playgroud)
这条线做什么?我把:[]它send作为第一个参数传递给我感到困惑.
作为参考,user_array是Class(Chef::Node)的实例,并且hash_key是一个字符串.
A report_template has_many report_template_columns,每个都有一个
name和index属性。
class ReportTemplateColumn < ApplicationRecord
belongs_to :report_template
validates :name, presence: true
end
class ReportTemplate < ApplicationRecord
has_many :report_template_columns, -> { order(index: :asc) }, dependent: :destroy
accepts_nested_attributes_for :report_template_columns, allow_destroy: true
end
Run Code Online (Sandbox Code Playgroud)
该report_template_columns需要由索引列进行排序。我在has_many关联范围上应用了此方法,但是这样做会导致以下错误:
> ReportTemplate.create!(report_template_columns: [ReportTemplateColumn.new(name: 'id', index: '1')])
ActiveRecord::RecordInvalid: Validation failed: Report template columns report template must exist
from /usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/validations.rb:78:in `raise_validation_error'
Run Code Online (Sandbox Code Playgroud)
如果删除范围,则同一命令成功。
如果我用order作用域替换作用域,where那么命令将以相同的方式失败,因此似乎是作用域的存在而不是order特定的使用。
如何在has_many不破坏嵌套创建的情况下将范围应用于?
ruby activerecord ruby-on-rails rails-activerecord ruby-on-rails-5
activerecord ×2
ruby ×2
animation ×1
ansible ×1
arrays ×1
capybara ×1
config ×1
credentials ×1
date ×1
distortion ×1
formbuilder ×1
git ×1
git-diff ×1
javascript ×1
linux ×1
macos ×1
poltergeist ×1
postgresql ×1
rspec ×1
selenium ×1
ssh ×1
yaml ×1