小编psh*_*ar0的帖子

Rails 3.2.2 - has_many通过

试图重构代码以提供干净的关联

游戏有一个HOME_TEAM和一个AWAY_TEAM

TEAM有许多游戏作为HOME_TEAM或AWAY_TEAM

GAME和TEAM之间的关联是直接的HABTM但我需要表示与GAME相关联的两个TEAM中的哪一个是HOME_TEAM,哪个是AWAY_TEAM.我是通过添加额外的字段和关联来实现的,但这显然非常潮湿而不是干燥.我知道答案已经过去,但我似乎已经脑部崩溃,并且无法完全理解这一点.

基本上我希望能够做Game.teams(返回两个团队的集合)和Game.home_team(获取并设置TEAM到home_team)和Game.away_team(获取并设置TEAM到away_team)

很抱歉提出这样一个直截了当的声音查询,但它只是离我而去

class Game < ActiveRecord::Base
  belongs_to :home_team
  belongs_to :away_team
  has_and_belongs_to_many :teams
end

class HomeTeam < ActiveRecord::Base
  belongs_to :team
  has_one :games
end

class AwayTeam < ActiveRecord::Base
  belongs_to :team
  has_one :games
end

class Team < ActiveRecord::Base
  has_and_belongs_to_many :games
  has_many :away_teams
  has_many :home_teams
end 
Run Code Online (Sandbox Code Playgroud)

所有帮助非常感谢

彼得

ruby-on-rails

5
推荐指数
1
解决办法
1527
查看次数

Rails 3.2.3 MySQL 5.5.1 Mysql2 gem安装失败,ld不兼容

我有一个干净的构建系统如下

Ubuntu 11.04

Rvm 1.13.5

Ruby 1.9.3p194

Rails 3.2.3

宝石1.8.24

MySql 5.5.24-1(安装在/ usr/local中)

我正在尝试安装mysql2 gem(0.3.11)并遇到以下问题:

 pal@smurf01:~$ sudo gem install mysql2
   [sudo] password for pal: 
   Building native extensions.  This could take a while...
   ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

        /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
   checking for rb_thread_blocking_region()... yes
   checking for rb_wait_for_single_fd()... yes
   checking for mysql.h... yes
   checking for errmsg.h... yes
   checking for mysqld_error.h... yes
   creating Makefile

   make
   compiling client.c
   client.c: In function 'rb_raise_mysql2_error':
   client.c:98:3: warning: ISO C90 forbids mixed …
Run Code Online (Sandbox Code Playgroud)

mysql gem mysql2 ruby-on-rails-3 ubuntu-11.04

3
推荐指数
1
解决办法
6120
查看次数

Rails 3.2.2 RVM系统广泛Capistrano安装无法找到宝石

我真的非常迫切需要这个问题的帮助,而且还有点失落.

我正在尝试使用Capistrano Ext部署新的生产服务器以允许登台和生产服务器,但它无法成功运行捆绑安装 - 部署.

cap staging deploy适用于现有的Ubuntu系统,但新服务器是一个常量失败,如下所示

my-app$ sh -c 'cd /var/www/html/rails/myapp/releases/20120519174459&& export PATH=/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/opt/local/bin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin && bundle install --deployment'
  Fetching gem metadata from http://rubygems.org/......
  Fetching gem metadata from http://rubygems.org/..
  Installing rake (0.9.2.2) 
  Gem::LoadError: Could not find rubygems-bundler (>= 0) amongst []
  An error occured while installing rake (0.9.2.2), and Bundler cannot continue.
  Make sure that `gem install rake -v '0.9.2.2'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

在任何其他目录中,ruby -v和rails -v会产生预期的结果

my-home$ ruby -v
 ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

my-home$ rails -v
 Rails 3.2.2 …
Run Code Online (Sandbox Code Playgroud)

gem capistrano rvm ruby-on-rails-3 ubuntu-11.04

3
推荐指数
1
解决办法
7892
查看次数