我们的团队互相使用不同的数据库,我们正在使用bundler,因此我们的Gemfile包含repo creator的db连接器(mysql)
我正在使用pg,由于有点懒惰和害怕破坏,我不想使用mysql,所以我只是在我们的Gemfile中添加一个gem"pg".
当然,既然我们正在使用git,它将始终显示为已修改的文件,并且我们都使用Gemfile,因此我们无法对其进行gitignore或将其与我们的更改一起提交.
问题是,我们该如何解决这个问题?在捆绑器中是否存在条件或我是否必须声明我在其他地方使用某个宝石?
我正在尝试Backbone.Marionette,我很困惑为什么我的Layouts和ItemViews继续生成额外的div.
例如在咖啡btw.
AppLayout = Backbone.Marionette.Layout.extend
template: "#my-layout",
regions:
menu: "#menu",
content: "#content"
MyMenuView = Backbone.Marionette.ItemView.extend
template: '#project_wiz_nav_template'
MyContentView = Backbone.Marionette.ItemView.extend
template: '#project_setup_template'
MyApp = new Backbone.Marionette.Application()
MyApp.addRegions
mainRegion: '#project'
MyApp.addInitializer ->
layout = new AppLayout()
MyApp.mainRegion.show(layout)
layout.menu.show(new MyMenuView())
layout.content.show(new MyContentView())
MyApp.start()
Run Code Online (Sandbox Code Playgroud)
这是index.html包含的内容:
<div id='project'></div>
<script type='text/template' id='project_wiz_nav_template'> <h2>HI</h2> </script>
<script type='text/template' id='project_setup_template'> <h2>WORLD</h2> </script>
<script id="my-layout" type="text/template">
<h2>Hello!</h2>
<div id="menu"></div>
<div id="content"></div>
</script>
Run Code Online (Sandbox Code Playgroud)
这就是它产生的:
<div id="project">
<div>
<h2>Hello!</h2>
<div id="menu">
<div>
<h2>HI</h2>
</div>
</div>
<div id="content">
<div>
<h2>WORLD</h2>
</div>
</div> …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中的不同位置出现此错误:
ActiveRecord::AssociationTypeMismatch in Settings::CompaniesController#show
Company(#70257861502120) expected, got Company(#70257861787700)
activerecord (3.2.11) lib/active_record/associations/association.rb:204:in `raise_on_type_mismatch'
activerecord (3.2.11) lib/active_record/associations/belongs_to_association.rb:6:in `replace'
activerecord (3.2.11) lib/active_record/associations/singular_association.rb:17:in `writer'
activerecord (3.2.11) lib/active_record/associations/builder/association.rb:51:in `block in define_writers'
activerecord (3.2.11) lib/active_record/attribute_assignment.rb:85:in `block in assign_attributes'
activerecord (3.2.11) lib/active_record/attribute_assignment.rb:78:in `each'
activerecord (3.2.11) lib/active_record/attribute_assignment.rb:78:in `assign_attributes'
activerecord (3.2.11) lib/active_record/base.rb:497:in `initialize'
app/controllers/settings/companies_controller.rb:4:in `new'
app/controllers/settings/companies_controller.rb:4:in `show'
Run Code Online (Sandbox Code Playgroud)
控制器看起来像这样,但问题可能发生在使用公司模型来保存或更新另一个模型的任何位置:
class Settings::CompaniesController < SettingsController
def show
@company = current_user.company
@classification = Classification.new(company: @company)
end
def update
end
end
Run Code Online (Sandbox Code Playgroud)
一些事实和观察:
Company模型没有任何改变,也会出现问题.据我所知,这是由于动态加载类.
不知何故,Company类在重新加载时获取新的类标识符.我听说有关它是由于草率要求的谣言.我在公司模型中没有要求我自己,但我确实使用了 …
我有一个问题,背景图像没有显示.
我有一个我已添加到锚标签的课程.
<a class="my-class"></a>
Run Code Online (Sandbox Code Playgroud)
并且该课程的CSS是:
.my-class {
background:transparent url("../images/my-bg-image.png") no-repeat 0 center
}
Run Code Online (Sandbox Code Playgroud)
问题是背景图像没有显示.
我知道它在那里,因为当我这样做时:
<a class="my-class">&NBSP;</a>
Run Code Online (Sandbox Code Playgroud)
部分图像显示.
任何人都知道如何使整个图像显示而不必插入很多 的请?
有没有办法在SASS中访问Ruby变量,还是我必须为它创建一个自定义函数?
我想要做的是为每个用户生成一个样式表,所以在控制器中,我做了类似的事情:
def show
respond_to do |format|
format.css{render :partial => "styles"}
end
end
Run Code Online (Sandbox Code Playgroud)
然后在视图名称_styles.haml我这样做:
:sass
#header
:background url(user.banner.url)
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
*显然不是:http://sass-lang.com/docs/yardoc/file.FAQ.html#q-ruby-code
除了我们做的'脏'代码修复之外还有其他方法(我们将_styles部分转换为rhtml然后)
#header {
background: #efefef url(<%= @company.settings.banner.url %>);
}
Run Code Online (Sandbox Code Playgroud)
haml有这种方法吗?
我计划的功能是根据从select标签中选择的数字插入一些表单元素.
我有一个名为number_of_passengers的选择标签,我打算为所选数字动态附加新的乘客字段.假设我从number_of_passengers中选择2,那么2个表单应该出现在字段集中.这些表格包含姓名,年龄等.
我试过这样:
并且只是将它转换为haml-speak但是每当我使用:javascript标签时我都会收到错误.我也不认为一旦我进入javascript标签就可以"逃脱"
:javascript
$('#number_of_passengers').change(function() {
var $num_of_passengers = $(this).val();
for($i=0; $i<$num_of_passengers;$i++) {
$('.passenger-info ul').append('<%= escape_javascript( render :partial => "new_passenger", :locals => {:booking => @booking }) %>');
}
})
Run Code Online (Sandbox Code Playgroud)
因为我在form_for中,如何将@booking变量传递给本地?看起来真的很复杂,而且我打算从循环20次(20个最大乘客)中做出肮脏的方式,然后根据所选的数字隐藏/显示它们.但那太脏了你不觉得吗?
只是想问一下那里的大师们.我知道CSS文件更好地合并而不是分成多个文件.js的工作方式是否相同?以下是我目前所知的几点(或者相信......如果我的信念/理解是错误的,你可以指出一些问题):
假设我在后台运行了delayed_job.任务可以安排或立即运行(有些是长期任务,有些则不是)
如果任务太长,用户应该可以取消它.延迟工作有可能吗?我检查了文档,似乎无法找到终止方法或其他东西.它们只提供一个捕获来取消延迟的作业本身(因此取消所有任务......我只需要取消某个正在运行的任务)
更新 我的老板(谁是一个伟大的程序员顺便说一句)建议使用Ruby Threading来实现我们的这个功能.这可能吗?就像为每个任务创建新线程并在其运行时杀死该线程一样?
就像是:
t1 = Thread.new(task.run)
self.delay.t1.join (?) -- still reading on threads so correct me if im wrong
Run Code Online (Sandbox Code Playgroud)
然后停止它我只会使用t1.stop(?)再次不知道
这可能吗?谢谢!
我打算为ruby脚本创建安装程序,但是我希望能够确保计算机已安装RVM。有没有一种方法可以完全脱机且不干扰地安装RVM(通过不干扰,如在创建可以执行所有操作的脚本中一样,而不是要求用户向其bash_profile或bashrc中添加某些内容)
我不是在问脚本本身,而是关于如何走这条路线的快速指针(如果可能的话)。我们还研究了这个问题,它很有帮助:
但是有点误导,因为答案只向我们展示了如何在RVM中离线安装红宝石。我们需要能够脱机安装RVM本身,并查看脚本
https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer
我是否要包括整个脚本并将rvm_releases_url更改为其他内容?将rvm路径附加到用户的bash_profile或bashrc而不是要求他们这样做是安全的吗?
haml ×2
jquery ×2
ruby ×2
activerecord ×1
backbone.js ×1
bundle ×1
bundler ×1
css ×1
css3 ×1
delayed-job ×1
gem ×1
html ×1
javascript ×1
macos ×1
marionette ×1
query-string ×1
rvm ×1
sass ×1
url ×1
variables ×1