在 Heroku 上使用 cedar-14 堆栈。刚刚注意到我无法再运行,heroku run console因为我收到错误:
bash:控制台:找不到命令
我仍然可以通过调用以下命令来访问控制台:
heroku run bundle exec rails console
Run Code Online (Sandbox Code Playgroud)
但我想知道是什么导致了这种变化。我是在提交几天后才注意到这个问题的,因此我可以查明问题所在。
我按照此答案的说明在用户单击按钮时复制 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) 我发现在显示用户信息时,我在ERB视图中使用了大量重复代码.沿着这条路线
<% if @user.name.present? %>
<%= @user.name %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我基本上是为了避免错误而对所有内容执行此操作(例如,可能没有所有新字段的旧用户).
有一个更好的方法吗?
我正在使用: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) 我正在运行测试以确保电子邮件不会发送给某些用户:
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”
如何测试未调用具有特定参数的操作邮件程序方法?
我试图从命令行运行时遇到上述错误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) 我正在使用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.但这似乎是错误的.如何在加载页面时清除过滤器?
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.com 和session.token获取22222
但是,当我打电话店,我得到一个店的地方shopify_domain: domain1.myshopify.com和shopify_token: 11111.
知道为什么会这样吗?这看起来很奇怪.
我知道有所有端点的Shopify API文档,例如GET/admin/products.json。但是我正在寻找可以在Rails控制台中找到所有不同命令的地方,例如
ShopifyAPI::Product.all
ShopifyAPI::Product.first
ShopifyAPI::Product.count
Run Code Online (Sandbox Code Playgroud)
等等等等。这些都在哪里列出?
出于某种原因,我发现很难找到这个简单问题的答案.
我正在测试一个电影模型:
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块中,它就不是很干,因为我需要为每个块做这个.
如何在每个描述块之前创建一行代码来创建新电影?
我有一个使用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) 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>在视图中显示出来.
ruby-on-rails ×10
javascript ×2
jquery ×2
rspec ×2
shopify ×2
erb ×1
filterrific ×1
foreman ×1
heroku ×1
html ×1
kaminari ×1
modal-dialog ×1
pagination ×1
ruby ×1