小编Jac*_*ham的帖子

Rails:heroku 运行控制台给出错误“bash:控制台:找不到命令”

在 Heroku 上使用 cedar-14 堆栈。刚刚注意到我无法再运行,heroku run console因为我收到错误:

bash:控制台:找不到命令

我仍然可以通过调用以下命令来访问控制台:

heroku run bundle exec rails console
Run Code Online (Sandbox Code Playgroud)

但我想知道是什么导致了这种变化。我是在提交几天后才注意到这个问题的,因此我可以查明问题所在。

ruby-on-rails heroku

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

如何为动态内容(模态)触发 jQuery 单击事件

我按照答案的说明在用户单击按钮时复制 URL。似乎工作正常,除非我将按钮移动到模态窗口中。我丢失了我的click事件处理程序。

function copyTextToClipboard(text) {
    [...] // working implementation
}

$(function() {
    var currentPostUrl = window.location.href + "?ref=blogshare"
    var currentPostTitle = $('.post-title').text().trim();

    $('.js-copy-bob-btn').on('click', function(event) {
        copyTextToClipboard(currentPostUrl);
        console.log('copied')
    });

    $('#myModal').appendTo("body") 
});
Run Code Online (Sandbox Code Playgroud)

这是我的 HTML:

<!-- Modal -->

<div id="myModal" class="modal fade" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button class="close" type="button" data-dismiss="modal">×</button>
            </div>

            <div class="modal-body">
                <div class="row modal-icons">
                    <div class="col-xs-5 text-center">
                        <a class="copy-url js-textareacopybtn" title="Step 2: Copy URL Button">
                            <h3>Copy Shareable Link</h3>
                        </a>

                       <-- THE BELOW BUTTON DOES …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery modal-dialog

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

优雅的方式只显示记录,如果它们存在于轨道ERB中

我发现在显示用户信息时,我在ERB视图中使用了大量重复代码.沿着这条路线

<% if @user.name.present? %>
  <%= @user.name %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我基本上是为了避免错误而对所有内容执行此操作(例如,可能没有所有新字段的旧用户).

有一个更好的方法吗?

ruby ruby-on-rails erb

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

"Uncaught TypeError:无法读取属性'apply'of undefined"使用Bootstrap-Switch Jquery

我正在使用:http://www.bootstrap-switch.org/并收到上述错误.基本上我正在尝试这样做,以便当用户开始在表单字段中输入时,切换从"关闭"切换到"打开".

HTML:

 <div class="row">

    <div class="col-sm-2 pull-right toggle">
      <input name="assessment[answer][tracking]" type="hidden" value="0" /><input class="trackable" data-on-text="Yes" data-off-text="No" data-on-color="success" type="checkbox" value="1" name="assessment[answer][tracking]" id="assessment_answer_tracking" />
    </div>

    <div class="col-sm-10 question">
        <textarea class="form-control" name="assessment[answer][content]" id="assessment_answer_content">
        </textarea>
     </div>

  </div>
Run Code Online (Sandbox Code Playgroud)

JS:

<script>

  $("[name='my-checkbox']").bootstrapSwitch();
  $(".trackable").bootstrapSwitch();

  $('.form-control').on("click paste", function(event){
         $("[name='my-checkbox']").bootstrapSwitch('setState', true);
   });

</script>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑 - Callstack:

Uncaught TypeError: Cannot read property 'apply' of undefined
  (anonymous function) @ bootstrap-switch-174a86fa717c568c8ba0a257ad07ce25.js?body=1:682
  jQuery.extend.each @ jquery-42fea4da63227b267ff49e07abf47db0.js?body=1:385
  jQuery.fn.jQuery.each @ jquery-42fea4da63227b267ff49e07abf47db0.js?body=1:137
  $.fn.bootstrapSwitch @ bootstrap-switch-174a86fa717c568c8ba0a257ad07ce25.js?body=1:674
  (anonymous function) @ new?utf8=?&assessment[patient_id]=1&assessment[user_id]=1&assessment[template_id]=2&commit=Create+A…:1114
  jQuery.event.dispatch @ jquery-42fea4da63227b267ff49e07abf47db0.js?body=1:4666 …
Run Code Online (Sandbox Code Playgroud)

javascript jquery twitter-bootstrap

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

Rspec:测试以确保不发送电子邮件

我正在运行测试以确保电子邮件不会发送给某些用户:

it "does not send reminders to users who are not subscribed" do
        expect(ReminderMailer).not_to receive(:send_reminder).with("whatever", user.id).and_return(double(deliver_now: true))
        book.send_reminders("whatever", user.id)
      end
Run Code Online (Sandbox Code Playgroud)

书.rb

def send_reminders(medium, user_id)
    ReminderMailer.send_reminder(medium, user_id).deliver_now
end
Run Code Online (Sandbox Code Playgroud)

但目前的测试表明:

and_return 不支持负面消息预期

如果我删除 and_return 部分:

it "does not send reminders to users who are not subscribed" do
        expect(ReminderMailer).not_to receive(:send_reminder).with("whatever", user.id)
        book.send_reminders("whatever")
      end
Run Code Online (Sandbox Code Playgroud)

然后测试失败,因为:

nil:NilClass 的未定义方法“deliver_now”

如何测试调用具有特定参数的操作邮件程序方法?

rspec ruby-on-rails

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

Foreman:命令"start"未定义

我试图从命令行运行时遇到上述错误foreman start.

我安装了宝石:

gem install foreman
Run Code Online (Sandbox Code Playgroud)

然后定义了一个procfile.为什么我收到此错误?当我运行工头列表时,我得到:

Available commands:
  build         Commission Forman to build a new Laravel app for you
  help          Displays help for a command
  list          Lists commands
  scaffold      Generate a scaffolded Foreman template file
  self-update   Updates the application.
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails foreman

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

重置页面上的重复过滤器重新加载

我正在使用ClearCove的伟大filterrific插件.

我想在重新加载页面时重置过滤器.目前,它保留了最后一个搜索过滤器,这让IMO感到困惑.

这是我的控制器:

  def index
     @filterrific = initialize_filterrific(
      current_user.patients,
      params[:filterrific],
      :select_options => {
        sorted_by: Patient.options_for_sorted_by      },
    ) or return
    @patients = @filterrific.find.page(params[:page])
    @templates = Template.all
    gon.root_url = root_url
  end
Run Code Online (Sandbox Code Playgroud)

我可以通过hack-y方式执行此操作,即使用Jquery单击在视图中呈现的reset_filterrific_url.但这似乎是错误的.如何在加载页面时清除过滤器?

ruby-on-rails filterrific

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

Rails:first_or_create不起作用

first_or_create非常奇怪的问题.请考虑以下方法:

def self.store(session)
    shop = self.first_or_create(shopify_domain: session.url, shopify_token: session.token)

    binding.pry

    shop.save!
    shop.shopify_domain
  end
Run Code Online (Sandbox Code Playgroud)

当我撬开这个方法时,我可以打电话session.url来获取domain2.myshopify.comsession.token获取22222

但是,当我打电话店,我得到一个店的地方shopify_domain: domain1.myshopify.comshopify_token: 11111.

知道为什么会这样吗?这看起来很奇怪.

ruby-on-rails shopify

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

Rails&Shopify:有什么方法可以查看Shopify API命令的完整列表吗?

我知道有所有端点的Shopify API文档,例如GET/admin/products.json。但是我正在寻找可以在Rails控制台中找到所有不同命令的地方,例如

ShopifyAPI::Product.all
ShopifyAPI::Product.first
ShopifyAPI::Product.count
Run Code Online (Sandbox Code Playgroud)

等等等等。这些都在哪里列出?

ruby-on-rails shopify

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

Rspec和Factory Girl:在模型测试中的所有描述块之前创建一个要使用的记录

出于某种原因,我发现很难找到这个简单问题的答案.

我正在测试一个电影模型:

RSpec.describe Movie, type: :model do


  describe 'some_method' do
     it "should do something" do
     end
  end

  describe 'some_other_method' do
    it "should do something else" do
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

我可以制作一部电影build(:movie),但我不知道应该把它放在哪里.在describe块之外,它会抛出一个错误:

未定义的方法`build'for#

但是如果我把它放在describe块中,它就不是很干,因为我需要为每个块做这个.

如何在每个描述块之前创建一行代码来创建新电影?

rspec ruby-on-rails

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

Rails&Kaminari:分页显示重复结果

我有一个使用Kaminari进行分页的Rails应用程序。由于某些原因,在某些页面上,最后一页的某些最后结果会被结转到下一页的第一个结果。

这是我的控制器:

 def available
    trailers = Trailer.most_recent.released.order("movies.imdb_rating desc").where("movies.imdb_rating IS NOT NULL")
    @trailers = trailers.page(params[:page]).per(18)
end
Run Code Online (Sandbox Code Playgroud)

拖车模型的范围:

 scope :most_recent, -> {
    where('NOT EXISTS(SELECT 1 FROM trailers b2 WHERE b2.movie_id = trailers.movie_id AND trailers.is_short_trailer = FALSE AND
    b2.is_short_trailer = FALSE
    AND (b2.published_at > trailers.published_at OR b2.published_at = trailers.published_at AND b2.id < trailers.id))').
    where(show: true).
    where(is_short_trailer: false)
  }

  # gets all trailers that have at least one release
  scope :released, -> { 
    joins(movie: :releases).where("movies.release_date > ?", 25.years.ago)
  }
Run Code Online (Sandbox Code Playgroud)

和视图:

<div class="trailers-container">
  <%= render …
Run Code Online (Sandbox Code Playgroud)

pagination ruby-on-rails kaminari

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

Rails从helper.rb呈现html标记

def helper_method
   "<a href='#{movie_path(user.wants_to_see_movies.first)}'>#{user.wants_to_see_movies.first.title.titleize}</a>".html_safe
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试从上面的辅助方法生成一个链接,但它Wants to see <a href='/movies/2'>Spectre</a>在视图中显示出来.

  1. 首先,我做错了什么?我以为html_safe会解决这个问题.
  2. 有没有办法用link_to来做到这一点?

ruby-on-rails

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