我在Rails 3.2.2中,我有一个Variant类:
class Variant < ActiveRecord::Base
has_one :twin_variant
end
Run Code Online (Sandbox Code Playgroud)
我希望能够将这个类中的两个对象关联成为"双胞胎".我想创建:
v1 = Variant.new
v1.name = "Fantastic variant"
v1.save
Run Code Online (Sandbox Code Playgroud)
然后我想有一个创建双变量的方法:
v2 = Variant.new
v2.name = "Fantastic variant twin"
v2.save
v1.twin_variant = v2
Run Code Online (Sandbox Code Playgroud)
然后这两个对象应该相互关联,这样:
v1.twin_variant
=> v2
v2.twin_variant
=> v1
Run Code Online (Sandbox Code Playgroud)
这可能吗?我该如何建立关联?
我之前从未遇到过这个问题所以我真的不知道从哪里开始寻找答案......尽管谷歌当然是一个关于这个话题的空路.
当我尝试将我的应用程序推送到heroku时,我得到以下消息:
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.3.0.pre.5
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Could not find tilt-1.3.5 in any of the sources
!
! Failed to install gems via Bundler.
!
! Heroku push rejected, failed to compile Ruby/rails app
Run Code Online (Sandbox Code Playgroud)
我已经摧毁了我的宝石并开始了很多次,以及我的Gemfile中需要倾斜的平坦,但没有运气,我仍然得到这个消息.
就像我说的那样,直到昨天我才得到这个错误,并认为这是一个可以修复的小错误.似乎情况并非如此,我正在试图弄清楚需要采取哪些措施来解决这个问题.
有什么建议?
编辑GEMFILE
source 'https://rubygems.org/'
gem 'rails', '3.2.12'
gem 'thin'
gem 'bcrypt-ruby', '~> 3.0.0'
gem 'bootstrap-sass'
gem 'will_paginate'
gem …Run Code Online (Sandbox Code Playgroud) 首先......我喜欢保持井井有条.因此,我开始困扰我,我的应用程序中的控制器列表只是在一个大目录中不断增长.
理想情况下,我可以构建一个子目录列表并组织我的控制器.您可以使用命名空间执行此操作,但随后子目录显示在URL中,我真的不希望这发生.
有没有人有不同的策略来保持他们的控制器,帮助器,模型和视图组织?
namespaces ruby-on-rails code-organization subdirectory ruby-on-rails-4
Rake任务执行ActiveRecord模型操作.我添加ActiveRecord::Base了rake任务,并在本地工作,但不是在Heroku上导致此错误:
未初始化的常量BookingObserver
就行了ActiveRecord::Base.如果我不包括该行,那么我根本不能使用该模型(导致类似的错误仅针对模型而不是观察者).
所以我正在努力更新我的rails环境以支持4.0和ruby 2.0.到目前为止,我在安装libxslt时遇到了一些麻烦.当在终端中运行时,我得到:
$ brew install libxml2
Error: Permission denied - /usr/local/lib/python2.7/site-packages/sitecustomize.py
Run Code Online (Sandbox Code Playgroud)
我以root用户身份运行它,因此权限被拒绝的消息非常令人费解.任何帮助表示赞赏.
当我将此代码添加到我的application.js时,它无法正常工作.我再显示了2个'custom_text'按钮,它保留了原来的'后退'按钮.
$(document).foundation()
.foundation('topbar', {
index : 0,
stickyClass : 'sticky',
custom_back_text: true,
back_text: 'custom_text',
init : true
});
Run Code Online (Sandbox Code Playgroud)
怎么可能修复?
我试图显示一个链接的iftube嵌入式iframe(用户可以输入并保存在表单中)
嵌入的视频没有显示出来.我得到的只是空白.
这是我的代码
<iframe width="560" height="315" src= "<%= video.link %>" frameborder="1" allowfullscreen></iframe>
Run Code Online (Sandbox Code Playgroud)
我检查了源代码
截图http://screencast.com/t/gmQAiFHEj
在源代码中,您可以看到它显示YouTube视频的URL,但我如何才能呈现它?
每当我跑:
rails -v
Run Code Online (Sandbox Code Playgroud)
我得到了结果
rails 3.2.13
Run Code Online (Sandbox Code Playgroud)
但我的gemfile如下:
gem 'rails', '~> 3.2.12'
gem 'rake' , '~> 10.0.4'
Run Code Online (Sandbox Code Playgroud)
我的gemfile.lock也有3.2.12,但出于某种原因,当我检查verison时,我已经安装了3.2.13.我想这就是我每次尝试运行服务器时都会收到错误的原因:
无法在任何来源中找到rake-10.0.4(Bundler :: GemNotFound)
任何人都可以告诉我为什么我运行rails 3.2.13?我希望运行3.2.12,因为我的技术人员告诉我2.13仍然存在问题,我需要坚持使用2.12.
也有人可以告诉我为什么我得到了rake错误,当我已经安装了rake gem并且它在我的gemfile中.
好的,我有这个阵列
array
=> [1620, 3093]
Run Code Online (Sandbox Code Playgroud)
我有一个整数
num
=> 1620
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以查看数组中是否有另一个数字 num
所以例如
是否有数组中的另一个数字不匹配num.所以对于上面的例子,我会返回true,但如果是数组,[1620, 1620]那么我将返回false
我知道这个问题已被问到很多,但通常建议的解决方案是设置config.active_record.whitelist_attributes为false.我试过了,仍然遇到这个问题:
Can't mass-assign protected attributes: ingredient_attributes
我有两个模型:recipe.rb和ingredient.rb.他们有一对多的关系,每个食谱都有很多成分.
recipe.rb
class Recipe < ActiveRecord::Base
attr_accessible :description, :name, :yield, :recipe_id
has_many :ingredient, :dependent => :destroy
accepts_nested_attributes_for :ingredient
end
Run Code Online (Sandbox Code Playgroud)
ingredient.rb
class Ingredient < ActiveRecord::Base
belongs_to :recipe
attr_accessible :ingredient, :listorder, :recipe_id
end
Run Code Online (Sandbox Code Playgroud) ruby ×4
heroku ×2
rake ×2
activerecord ×1
associations ×1
bundler ×1
embed ×1
gemfile ×1
homebrew ×1
javascript ×1
libxml2 ×1
namespaces ×1
rubygems ×1
subdirectory ×1
youtube ×1