小编Mic*_*itz的帖子

Ruby on Rails中的面包屑

关于我的面包屑解决方案,我有点不安全.每个控制器操作中都定义了名称和链接:

<a href="http://localhost:3000/">Home</a>
<% if defined? @l1_link %>
  > <a href="<%= @l1_link%>"><%= @l1_name %></a>
  <% if defined? @l2_link %>
    > <a href="<%= @l2_link%>"><%= @l2_name %></a>
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这样我可以使用:

@l1_link = user_path()
Run Code Online (Sandbox Code Playgroud)

问题:因为我不那么聪明 - 这种系统能否在未来的某个地方引发灾难?这(严重)效率低下吗?

ruby controller ruby-on-rails breadcrumbs

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

Heroku上的Redistogo和Sidekiq:无法连接

在更新我的宝石并将所有内容投入生产后,我在Heroku上启动sidekiq时遇到了很大的问题.问题是Sidekiq尝试在本地连接和端口上连接到Redis,而不是使用REDISTOGO变量.花了几个小时后,我设法修复它:下面的答案.

heroku redis sidekiq

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

Ruby on Rails Collection选择 - 如何预先选择正确的值?

我花了最近三天的时间来处理我的"列表" - 表单的集合_选择表单助手,用户可以在其中选择一个类别.

我想将listing.category_id中当前设置的类别作为预选值.

我的视图代码如下所示:

<%= l.collection_select(:category_id, @category, :id, :name, options = {},
                        html_options = {:size => 10, :selected => @listing.category_id.to_s})%>
Run Code Online (Sandbox Code Playgroud)

我知道这是不正确的,但即使阅读Shiningthrough(http://shiningthrough.co.uk/blog/show/6)的解释,我也无法理解如何继续.

感谢您的支持,

迈克尔

查看: 如上
控制器:

def categories #Step 2
@listing = Listing.find(params[:listing_id])
@seller = Seller.find(@listing.seller_id)
@category = Category.find(:all)
@listing.complete = "step1"

respond_to do |format|
  if @listing.update_attributes(params[:listing])
    flash[:notice] = 'Step one succesful. Item saved.'
    format.html #categories.html.erb
end
end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

使用 Selenium for Ruby on Rails 在 Heroku 上找不到 Chrome 二进制文件

两周前,我设法在 Heroku 上建立了一个工作环境,结合 Capybara、Selenium、Chromedriver 和 Chrome 进行网页抓取。但是,一周前我必须更改某些内容,导致由于找不到 Chrome 二进制文件而导致设置崩溃。

WARN: Selenium::WebDriver::Error::UnknownError: unknown error: cannot find Chrome binary (Driver info: chromedriver=2.40.565383 (76257d1ab79276b2d53ee976b2c3e3b9f335cde7),platform=Linux 4.4.0-1019-aws x86_64)
Run Code Online (Sandbox Code Playgroud)

我在 Heroku-14 Stack 上使用了两个相关的 buildpack

https://github.com/heroku/heroku-buildpack-xvfb-google-chrome
https://github.com/heroku/heroku-buildpack-chromedriver
Run Code Online (Sandbox Code Playgroud)

使用的宝石:

gem 'selenium-webdriver','>=3.6.0'
gem 'chromedriver-helper'
Run Code Online (Sandbox Code Playgroud)

我花了周末的时间试图通过将各种路径直接传递到 capybara.rb 初始值设定项(并通过运行 heroku run bash 来比较这些路径)来使其工作,但无法使其工作。

水豚

require "selenium/webdriver"
chrome_bin = ENV.fetch('GOOGLE_CHROME_SHIM', nil)
    chrome_opts = chrome_bin ? { "chromeOptions" => { "binary" => 'app/.apt/usr/bin/google-chrome-stable' } } : {}
    puts chrome_opts.to_s

    Capybara.register_driver :chrome do |app|
      Capybara::Selenium::Driver.new(
         app,
         browser: :chrome,
         desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome(chrome_opts)
      )
    end

    Capybara.default_driver = …
Run Code Online (Sandbox Code Playgroud)

ruby selenium google-chrome heroku capybara

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

未知关键字:Active Storage 5.2.1.1中的content_type

如果将Rails更新到5.2.1.1以避免活动存储中的潜在错误(信息发布于2018年11月27日左右),则建议在将文件上传到Amazon S3时这会导致错误。

ArgumentError: unknown keyword: content_type

可以通过将gemfile中的rails升级到

gem 'rails', '5.2.2.rc1'
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 rails-activestorage

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

将facebook生日信息添加到rails/devise/omniauth中的某个模型

我有问题从facebook获取生日信息到我的应用程序.最大的问题是误解了FB的权限页面:http: //developers.facebook.com/docs/authentication/permissions/

这里的生日被描述为user_birthday.但那不是你怎么能从反应中抓住它.我找到了一个非常简单的解决方案.

facebook ruby-on-rails devise

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

Javascript - 如何正确调用函数

我真的不明白如何在文档就绪时正确调用Javascript函数.我的目标是根据浏览器窗口的高度调整div的大小,并从SO上的另一个答案中获取此代码.我究竟做错了什么?

function resizeElementHeight(element) {
  var height = 0;
  var body = window.document.body;
  if (window.innerHeight) {
      height = window.innerHeight;
  } else if (body.parentElement.clientHeight) {
      height = body.parentElement.clientHeight;
  } else if (body && body.clientHeight) {
      height = body.clientHeight;
  }
  element.style.height = ((height - element.offsetTop) + "px");
}

$(document).ready(resizeElementHeight($('#global_image'))); 
Run Code Online (Sandbox Code Playgroud)

我试图调用的元素具有id"global_image",但我得到"不能设置未定义的属性高度",并且我觉得如何为函数提供正确的元素感到迷茫.谢谢你的帮助!

javascript getelementbyid

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