我正在使用一个按钮在一组选定的复选框中执行处理.该解决方案基于RailsCast#165.
它一切正常,但只有在表单中包含submit_tag按钮(我的应用程序中的表).我想将提交按钮放在页眉中,但这会破坏与表单的连接.
如何在表单正文外放置提交按钮?
<%= form_tag select_cosmics_path, method: :put do %>
<%= submit_tag "Accept Checked", :class => "btn btn-primary" %>
<table class="table table-striped">
.
.
<% @cosmics.each do |cosmic| %>
<tr>
<td><%= check_box_tag "cosmic_ids[]", cosmic.id %></td>
.
.
</tr>
<% end %>
</table>
<% end %>
Run Code Online (Sandbox Code Playgroud)
的routes.rb
resources :cosmics do
collection do
put :select
end
end
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一些复杂的,长时间运行的delayed_job进程.我正在使用Rspec来测试流程中使用的各个方法和类,但我还想执行许多具有不同测试数据的端到端后台作业.
我在delayed_job wiki上找不到任何关于此问题的内容,这个问题看起来很有意思但我并不真正理解这里发生了什么. 使用rSpec测试delayed_job链的最佳方法是什么?
我可以使用工厂轻松设置测试数据,然后调用启动后台处理的类.我希望测试需要很长时间才能完成.
编辑后台代码
class Singleplex
def perform(batch_id,user)
batch = start_batch(batch_id,user)
... do lots of stuff ...
end
handle_asynchronously :perform, queue: :singleplex, :run_at => Proc.new { 1.second.from_now }
Run Code Online (Sandbox Code Playgroud)
规格/工厂/ batches.rb
FactoryGirl.define do
factory :batch do
batch_type 'singleplex'
name 'valid panel'
status 'ready'
end
factory :batch_detail do
chrom 7
chrom_start 140435012
chrom_end 140435012
target_offset 150
padding 4
primer3_parameter_id 1
snp_mask 't'
status 'ready'
batch
end
end
Run Code Online (Sandbox Code Playgroud)
然后像这样运行测试
describe Batch do
it 'runs Singleplex for a valid panel' do
batch …Run Code Online (Sandbox Code Playgroud) 我正在运行的流浪盒(ubuntu,在OS X Mavericks主机上)运行良好.
我正在尝试从主机设置pgAdmin,并且无法为sql流量打开新端口.
我在我的Vagrantfile中添加了一行(最后一行):
config.vm.network "forwarded_port", guest: 3000, host: 8080 # http
config.vm.network :forwarded_port, guest: 35729, host: 35729
config.vm.network "forwarded_port", guest: 5432, host: 7001 # postgres
Run Code Online (Sandbox Code Playgroud)
我跑了流浪汉,并多次弹跳Vagrant盒子.重新启动时,未列出新的端口转发:
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 3000 => 8080 (adapter 1)
default: 35729 => 35729 (adapter 1)
default: 22 …Run Code Online (Sandbox Code Playgroud) 我有一个家庭控制器和一个新闻控制器.我希望这两个控制器都使用application.html.erb布局文件,除此之外,对于家庭,使用家庭布局和新闻,使用新闻布局.然后渲染一个特定的视图.在轨道中这可能吗?
换句话说,我不希望为每个视图指定一个布局,但是每个控制器都要从application.html.erb布局继承.
我想要做的是删除添加顶部导航栏的冗余,并在每个布局文件中包含javascript/css.我宁愿将其包含在一个文件中,并使用另一个布局执行控制器特定布局,然后最终渲染视图.
谢谢
在这篇关于模式匹配的有趣博客文章中,有一些代码的方法签名为(*)
class Request < Data.define(:path, :scheme, :format)
def deconstruct_keys(*)
{ path: @path, scheme: @scheme, format: @format }
end
def deconstruct(*)
path.split("/").compact
end
end
Run Code Online (Sandbox Code Playgroud)
这不同于
def a_method(*args)
Run Code Online (Sandbox Code Playgroud)
我在Ruby 文档中找不到任何信息。
这是什么def deconstruct_keys(*)意思?
注意Ruby Weekly上提到了这个问题
我在Ubuntu上的Digital River上托管了一个Postgres数据库,并按照这些说明安装:
但是区域设置有问题,我无法解决如何修复它.当我运行psql命令时,我收到以下错误:
postgres@assay:/home/deployer$ psql
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
psql (9.1.9)
Run Code Online (Sandbox Code Playgroud) 在Ruby中,可以使用其中之一
__callee__
Run Code Online (Sandbox Code Playgroud)
要么
__method__
Run Code Online (Sandbox Code Playgroud)
找到当前正在执行的方法的名称.
两者有什么区别?
我的Angular应用程序有许多模态,我有AngularUI来提供模态指令.
http://angular-ui.github.io/bootstrap/
到目前为止,我有几个主控制器,这些都在app.js文件中作为路由.
$routeProvider.when '/dashboard', templateUrl: '/templates/dashboard/dashboard.html', controller: 'DashboardController'
$routeProvider.when '/dataset/:panel_id', templateUrl: '/templates/dataset/dataset.html', controller: 'DatasetController'
$routeProvider.when '/batches/:panel_id', templateUrl: '/templates/design/design.html', controller: 'PanelController'
Run Code Online (Sandbox Code Playgroud)
这很好用.
然后我创建了一个调用模态的函数,而modal有一个ConfigureModalCtrl的实例控制器.我最初在调用控制器文件的底部有这个,它工作正常.
$scope.invokeConfigureModal = (assay_id) ->
$scope.assay_id = assay_id
$scope.primer3 = $scope.getPrimer(assay_id)
modalInstance = $modal.open(
templateUrl: '/templates/configure_modal/configure_modal.html'
controller: ConfigureModalCtrl
windowClass: 'configure-dialog'
resolve:
primer3: ->
$scope.primer3
)
modalInstance.result.then ((primer3) ->
$scope.primer3 = primer3
return
), ->
return
Run Code Online (Sandbox Code Playgroud)
现在我已将模态实例控制器移动到它自己的文件中,但调用函数找不到它.
angular.module('assaypipelineApp').controller "ConfigureModalCtrl", ($scope, $modalInstance, primer3) ->
$scope.primer3 = primer3['data']
$scope.ok = ->
$modalInstance.close $scope.primer3
return
$scope.cancel = ->
$modalInstance.dismiss "cancel" …Run Code Online (Sandbox Code Playgroud) 在我的工厂我有一个布尔字段(已评估),我试图将其设置为false.我希望该字段是必需的,并始终设置为true或false
模型
validates_presence_of :evaluated
Run Code Online (Sandbox Code Playgroud)
厂
FactoryGirl.define do
factory :submission do
evaluated true
score 1.5
ranking 1.5
submission_type "user"
.
.
end
end
Run Code Online (Sandbox Code Playgroud)
在测试中
it { should validate_presence_of(:evaluated) }
Run Code Online (Sandbox Code Playgroud)
当我运行它
Failure/Error: expect(@submission).to be_valid
expected #<Submission id: nil, competition_id: 163, user_id: 134, team_id: nil, evaluated: false, score: 1.5, ranking: 1.5, submission_type_cd: "user", withdrawn: true, withdrawn_date: "2016-02-08", created_at: nil, updated_at: nil> to be valid, but got errors: Evaluated can't be blank
Run Code Online (Sandbox Code Playgroud)
如果我将值更改为true,则测试通过
evaluated true
Run Code Online (Sandbox Code Playgroud)
如何为Booleans设置错误值的工厂?
我在Rails 3.1.1,Ruby 1.9.2和最新的gem(从github中提取).
将资源添加到Ruby的优秀ActiveAdmin gem中非常容易.我可以看到您还可以通过从app/admin中删除相关的.rb文件来删除资源.
我在文档中找不到任何关于它的内容,但有没有人知道是否有另一种方法删除资源...或者正确删除ActiveAdmin资源文件?
rspec ×2
ruby ×2
activeadmin ×1
angular-ui ×1
angularjs ×1
delayed-job ×1
factory-bot ×1
forms ×1
locale ×1
postgresql ×1
ubuntu ×1
unix ×1
vagrant ×1