小编wac*_*nia的帖子

PG::UndefinedTable:错误:关系“active_storage_blobs”不存在

将应用程序 Rails 5.2 更新为 6,更新添加了以下两个迁移:

    # This migration comes from active_storage (originally 20190112182829)
    class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[6.0]
  def up
    unless column_exists?(:active_storage_blobs, :service_name)
      add_column :active_storage_blobs, :service_name, :string

      if configured_service = ActiveStorage::Blob.service.name
        ActiveStorage::Blob.unscoped.update_all(service_name: configured_service)
      end

      change_column :active_storage_blobs, :service_name, :string, null: false
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

# This migration comes from active_storage (originally 20191206030411)
class CreateActiveStorageVariantRecords < ActiveRecord::Migration[6.0]
  def up
    create_table :active_storage_variant_records do |t|
      t.belongs_to :blob, null: false, index: false
      t.string :variation_digest, null: false

      t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true …
Run Code Online (Sandbox Code Playgroud)

migration postgresql ruby-on-rails ruby-on-rails-6

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

Rails:找不到生成器rolify

编辑!

我设置了rolify gem并捆绑了我的应用:

我补充说:

gem "rolify" #to add roles like admin and member to the users
Run Code Online (Sandbox Code Playgroud)

到gemfile然后运行

bundle install
Run Code Online (Sandbox Code Playgroud)

当我试图跑

rails g rolify Role User
Run Code Online (Sandbox Code Playgroud)

我明白了

Could not find generator rolify.
Run Code Online (Sandbox Code Playgroud)

谷歌没有提出任何建议

有任何想法吗?

ruby-on-rails generator rolify

4
推荐指数
3
解决办法
2467
查看次数

如何从下拉列表中选择第一个元素.回报率/水豚/硒

所以这段代码工作得很好,直到我最近更新了我的selenium webdriver:

When /^I search for (.*)$/ do |term|
    term = " " if term == "blank"
    step "I fill in search with #{term}"
    within(".navbar-search") do
        page.find(:css, "li:first").click
    end
end
Run Code Online (Sandbox Code Playgroud)

我更新了,现在我收到以下错误:

 An invalid or illegal string was specified (Selenium::WebDriver::Error::UnknownError)
  ./features/step_definitions/search_steps.rb:5:in `block (2 levels) in <top (required)>'
  ./features/step_definitions/search_steps.rb:4:in `/^I search for (.*)$/'
  features/search_friend.feature:13:in `When I search for <term>'
Run Code Online (Sandbox Code Playgroud)

这是黄瓜功能:

@javascript
Scenario Outline: The search bar
    Given I login
    And I have a contact named ABC
    And I have a contact named …
Run Code Online (Sandbox Code Playgroud)

selenium ruby-on-rails cucumber capybara

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

Ajax beforeSend只在Rails上运行一次

我有3个文件:

index.html.erb是我的主页

在索引中我渲染了一个部分的_relationship.html.erb,并且有一个包含以下行的表单:

<%= form_tag('/relationships/update/', :remote => true, :id => "relationships_form_#{@count}") do %>
Run Code Online (Sandbox Code Playgroud)

我也有index.js.erb(relationship.html在index.html.erb中)

jQuery("#relationships_form_1").bind("ajax:success", function() {
  $("#box_relationships").hide().html("<%=escape_javascript(render('relationships/relationships'))%>").fadeIn(2000, 'swing');
  })
Run Code Online (Sandbox Code Playgroud)

每次发送表单,并更改值.

我想使用beforeSend选项显示加载gif.

我试过(在index.html.erb上.如果我把它放在_relationships部分,它根本不起作用):

jQuery("#relationships_form_1").bing("ajax:beforeSend", function() {
$("#relationship_save").show();
});  
Run Code Online (Sandbox Code Playgroud)

但它只工作一次.

然后,我添加了之前的rails选项

:before => '$("#relationship_save").show();'
Run Code Online (Sandbox Code Playgroud)

它再次只能工作一次.

我甚至在jquery上尝试了.on

    jQuery("#relationships_form_1").on("ajax:beforeSend", function() {
$("#relationship_save").show();
});
Run Code Online (Sandbox Code Playgroud)

它仍然只能工作一次.

每次发送表单,每次存储值,之前只发送一次

有什么想法吗?

ajax jquery ruby-on-rails

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

如何检查对象是否未定义/ null

这个问题已经出现了很多,但我不能让它发挥作用.

我有5个div,我想在最后一个使用之前隐藏div.因此,如果用户单击div 1中的某个位置,然后单击div 2中的某个位置,则div 1淡出(所有这些都在Ajax调用之后)

这是我的代码:

$(document).ready(function() {
    $("#[id^='r_form_']").bind("ajax:success", function(evt, data, status, xhr) {
        var $form = $(this);

        $(this).parent().css("background", "green");

        if($lastForm == null) {
            var $lastForm = $(this);
        };

        if(!($lastForm[0] == $form[0])) {
            $lastForm.parent().fadeOut(1500);
            var $lastForm = $(this);
        };
    });
});
Run Code Online (Sandbox Code Playgroud)

如果变量$lastForm未定义,则分配Ajax发生的当前表单.

变量始终未定义.我alert('undefined')在循环中添加了一个,我总是得到它.为什么?

我有一种感觉,可能是因为当Ajax请求返回时,变量被重置.但我不是真正的专家,似乎无法找到答案.

javascript ajax jquery scope

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

Sidekiq/Rails:如何捕获异常并重试

我有运行 Selenium 的 sidekiq 作业。如果工作崩溃了,我需要

  1. 捕获异常以关闭 selenium 驱动程序(否则所有即将到来的作业也会崩溃),
  2. 通知错误处理程序(哨兵)
  3. 让 sidekiq 再试一次

今天我可以捕获并通知,但是通过捕获异常,Sidekiq 将不会重试该作业。

我的问题与此类似,但 a)没有得到答案,b)用户不想通知其错误处理服务。

即使我捕获了异常,如何让 Sidekiq 重试该作业?

ruby-on-rails sidekiq

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

在红宝石中一次检查几个布尔值

我有一些对象(不是所有对象)的记录,我必须检查它们是真还是假,以标记另一条记录是真还是假.这就是我现在正在做的事情:

step_finished = object.one == true &&  object.two == true && object.three == true &&  object.four == true
Run Code Online (Sandbox Code Playgroud)

我敢肯定必须有一个更好的方法,但我找不到它.我有另外一步要检查20个值,所以如果你知道一个更有效的方法检查这个,请帮忙!

谢谢!

ruby boolean

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