当我在OSX上运行rails应用程序并尝试上传图像时出现此错误.
我有一个"产品"模型,我正在使用Mini_Magick和CarrierWave上传产品的图像.当我在我的ubuntu的笔记本电脑上创建一个产品时,它工作正常,但是当我在我的macbook上执行此操作时,它会抛出错误:
图像无法使用MiniMagick进行操作,也许它不是图像?原始错误:
未安装ImageMagick/GraphicsMagick
我已完成"捆绑安装"命令,一切正常......你知道可能是什么问题吗?
我有一个名为" 神奇 " 的宝石,里面有一个虚拟应用程序来测试.在运行虚拟应用程序时,一切运行良好.
但是,当我运行测试时,单元测试工作正常,但集成测试(Capybara + Poltergeist)失败并显示以下消息:
Sprockets :: FileNotFound:找不到类型为'application/javascript'的文件'jquery'.
检查这些路径:
/ fantastic/spec/dummy/app/assets/images,/ fantastic/spec/dummy/app/assets/javascripts,/ fantastic/spec/dummy/app/assets/stylesheets,/ fantastic/app/assets/javascripts,/ fantastic/app/assets/stylesheets,/ fantastic/vendor/assets/javascripts
我的一些文件:
fantastic.gemspec
# ...
s.add_development_dependency "capybara"
s.add_development_dependency "poltergeist"
s.add_development_dependency "jquery-rails"
# ...
Run Code Online (Sandbox Code Playgroud)
规格/虚拟/应用/资产/ JavaScript的/ application.js中
//= require jquery // Error is produced in this line
//= require jquery_ujs
//= require fantastic
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
问题是当运行rails服务器时一切正常,并且正确加载了jQuery(我在浏览器的控制台中测试了它).
知道测试中发生了什么吗?
编辑
我尝试创建自定义Capybara.app:
投机/ spec_helper.rb
ENV["RAILS_ENV"] = 'test'
# Require dummy Rails app
require File.expand_path("../../spec/dummy/config/environment", __FILE__)
require 'database_cleaner'
require …Run Code Online (Sandbox Code Playgroud) 我有一个通过javascript呈现的模态表单.该模型被称为书.
# controllers/books_controller.rb
def new
@book = Book.new
end
def create
@book = Book.find(params[:id])
@book.save
end
Run Code Online (Sandbox Code Playgroud)
我没有使用新的和编辑html,而是使用coffeescript:
# views/new.js.coffee
CustomModal.open "<%= j render('books/modal_form', book: @book) %>"
Run Code Online (Sandbox Code Playgroud)
-
# views/create.js.coffee
<% if @book.valid? %>
CustomModal.hide()
# Other callback scripts for showing alert, etc
<% else %>
# Script for showing errors in the modal
<% end %>
Run Code Online (Sandbox Code Playgroud)
以及触发模态的链接:
= link_to "Create Book", new_book_path, remote: true
Run Code Online (Sandbox Code Playgroud)
现在,我面临的问题是这个链接只是在书的列表页面上使用.因此,在创建图书时,js回调会触发警报并使用更改更新列表.
现在我必须在另一个页面中添加此按钮,其中没有列表,所以我需要一个不同的回调(无论哪个回调都没关系).
所以,我必须添加到create.js.coffee之类的东西:
# views/create.js.coffee
<% if @book.valid? %>
CustomModal.hide()
# if …Run Code Online (Sandbox Code Playgroud) 我正在使用Entity Framework代码优先,我有一个Course具有导航属性的类Students:
public virtual Collection<Student> Students { get; set;}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是当我访问此导航属性时,将从数据库中检索所有数据:
var allStudents = course.Students; // Here it retrieves the data
var activeStudents = allStudents.Where(n => n.Active); // Here it filter the data on memory
var listOfActiveStudents = activeStudents.ToList(); // It already has the data on memory.
Run Code Online (Sandbox Code Playgroud)
您可以想象,我需要在执行此操作时执行查询,.ToList()因为我不想Students从数据库中获取所有数据,只有活动数据库.
你知道我做错了什么吗?
我有一个task这是关系到模型user和project模型.
当我创建/更新任务时,我需要在视图异步中进行更新,不仅用于任务更改/添加,还包括项目和用户信息(因为某些数据也可能会更改).
我在控制器中有这个:
def create
@task = Task.new(params[:task])
@project = Project.find(params[:project_id])
respond_to do |format|
if @task.save
format.html { redirect_to @task, notice: 'Task was successfully created.' }
format.json { render json: @task, status: :created, location: @task }
else
format.html { render action: "new" }
format.json { render json: @task.errors, status: :unprocessable_entity }
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的任务/ create.js.coffee
# Update task table
$('#mytable').append("<%= j render(partial: 'tasks/task', locals: { t: @task }) %>")
# Update user data …Run Code Online (Sandbox Code Playgroud) 我有这门课:
# app/events/new_request.rb
class Events::NewRequest
end
Run Code Online (Sandbox Code Playgroud)
我将该文件夹添加到自动加载:
# config/application.rb
config.autoload_paths += %W( events/ )
Run Code Online (Sandbox Code Playgroud)
运行时rails c:
> Events::NewRequest
NameError: uninitialized constant Events
Run Code Online (Sandbox Code Playgroud)
问题是如果我在定义类时不使用名称空间"Events",它会成功自动加载类.
我正在使用Dapper.NET,当我执行下一个代码时:
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
con.Execute(@" insert Clients(name) values(@Name)", new {Name = "John"});
con.Close();
}
Run Code Online (Sandbox Code Playgroud)
它执行的查询是下一个:
(@Name nvarchar(4000)) insert Clients(name) values(@Name)
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么Dapper将字符串翻译成nvarchar(4000)?我的意思是......在数据库上,名字字段是nvarchar(50) ......
有人面对这个错误吗?你是如何解决的?你找到了另一个这样的bug吗?
最近,我从RVM移至Rbenv。我跑了一堆不同的Rails应用程序(每个人都有不同的红宝石版)与passenger和nginx。但是,尝试加载两个应用程序时出现错误:
/user_folder/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': incompatible library version - /usr/local/Cellar/passenger/6.0.2_1/libexec/buildout/ruby/ruby-2.3.3-x86_64-macosx/passenger_native_support.bundle (fatal)
from /user_folder/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:427:in `load_native_extension'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:103:in `load_from_buildout_dir'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:39:in `try_load'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:50:in `start'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:443:in `<top (required)>'
Run Code Online (Sandbox Code Playgroud)
其他应用程序运行良好,而当我使用webrick(独立)时,这些应用程序也可以运行。但是由于某种原因,我在使用时遇到了问题passenger。
我不确定这是否是巧合,但是我遇到问题的两个应用程序都在运行ruby v2.3.3。
有什么想法吗?
我正在构建一个 Rails 应用程序并遇到一些奇怪的 sass 编译问题。
我的设置:
我application.scss基本上加载了一些设置一些变量的 sass 文件,最后导入了layout.scss有效使用导入变量的文件。
// application.scss
@import "normalize";
@import "variables/colors";
@import "variables/typography";
@import "variables/sizes";
@import "layout";
Run Code Online (Sandbox Code Playgroud)
// variables/_typography.scss
$ui-font-family: "Poppins", sans-serif;
$ui-font-family-title: "Lato", sans-serif;
Run Code Online (Sandbox Code Playgroud)
// layout.scss
h1, h2, h3, h4, h5, h6 {
font-family: $ui-font-family-title;
}
Run Code Online (Sandbox Code Playgroud)
// views/layouts/application.html.erb
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
Run Code Online (Sandbox Code Playgroud)
一开始它有效,但后来我注意到有时我会收到错误消息
Error: Undefined variable: "$ui-font-family-title".
on line 3:16 of app/assets/stylesheets/layout.scss
>> font-family: …Run Code Online (Sandbox Code Playgroud) 我开始使用DAPper,微型ORM,我使用Dapper Rainbow.我想测试查询和它们检索的数据.
我的意思是,例如,我有UserService和方法GetAll(),我想测试sql查询是从一些列表中检索所有用户(而不是从数据库,因为我希望测试快速).你知道我怎么做的吗?
我的服务类(以及我想测试的方法):
public static class UserService{
public static IEnumerable<User> GetAll(){
return DB.Users.All();
}
}
Run Code Online (Sandbox Code Playgroud)
您对单元测试查询和数据检索有什么建议吗?
谢谢
default_scope我在尝试跳过 ActiveRecord 时遇到一些问题join。
尽管代码库相当大,但我只是展示基础知识,因为我认为它很好地说明了问题所在:
class Client
belongs_to :company
end
class Company
default_scope { where(version_id: nil) }
end
Run Code Online (Sandbox Code Playgroud)
我正在构建一个复杂的报告,因此我需要连接多个表并对其进行过滤。但是,在获取 s 时我无法成功跳过默认范围Client。
Client.joins(:company).to_sql
# SELECT clients.* FROM clients INNER JOIN companies
# ON companies.id = clients.company_id AND companies.version_id IS NULL
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它会自动包含Company default_scope. 所以我尝试了这个:
Company.unscoped { Client.joins(:company) }.to_sql
# SELECT clients.* FROM clients INNER JOIN companies
# ON companies.id = clients.company_id AND companies.version_id IS NULL
Run Code Online (Sandbox Code Playgroud)
unscoped同样,即使与块一起使用,我也得到了相同的结果。
然后我决定向模型添加一个新的关联,其unscoped范围:
class Client
belongs_to :company
belongs_to :unscoped_company, …Run Code Online (Sandbox Code Playgroud) 我有一个用于在我的 rails 应用程序中创建产品的表单:
= form_for product, url: url, method: :post, html: { class: 'product-form' }, remote: true do |f|
.row
.col-xs-12.col-sm-6
.form-group.required
= f.label :name
= f.text_field :name, autofocus: true, class: 'form-control'
.col-xs-12.col-sm-6
.form-group.required
= f.label :price
.input-group
.input-group-addon $
= f.number_field :price, class: 'form-control'
.row
.col-xs-12
.form-group
= f.label :description
= f.text_area :description, class: 'form-control'
.row
.col-xs-12
.form-group
= label_tag :images, 'Images'
= f.file_field :images, multiple: true, class: 'form-control'
.row
.col-xs-12.text-right
= f.submit "Cancel", class: 'btn btn-default', …Run Code Online (Sandbox Code Playgroud) .net ×3
ruby ×3
c# ×2
carrierwave ×2
coffeescript ×2
dapper ×2
activerecord ×1
ado.net ×1
amazon-s3 ×1
capybara ×1
dbcontext ×1
heroku ×1
javascript ×1
macos ×1
minimagick ×1
nginx ×1
passenger ×1
poltergeist ×1
rbenv ×1
rspec ×1
sass ×1
sprockets ×1
sql-server ×1
tdd ×1
turbolinks ×1
unit-testing ×1