新脚手架没有外键

时间:2010-10-06 21:54:15

标签: ruby-on-rails

美好的一天......我遇到了很大的麻烦,这让我感到疯狂。

我的用户创建应该有一些额外的数据,如:

<div class="field"><%= label_tag 'species', %>
    <%= f.collection_select :species_id, Species.all, :id, :name %></div>

它正确显示物种列表,是的,但是当我提交时,它完全被忽略了。即使数字出现在数据库的表中,也只是消失了。我已经说出了正确的联想:

class Species < ActiveRecord::Base
    has_many :users
end

class User < ActiveRecord::Base
    # ... Other stuff
    belongs_to :species
    # ... Other stuff
end

我也试过操纵控制器:

class UsersController < ApplicationController
  def create
    logout_keeping_session!
    @user = User.new(params[:user])
    @user.species = Species.find(params[:species_id])
    # Other stuff
  end
end

但这只会让我'找不到没有id的物种',即使params数组包含一个带有值的元素'species_id'。 我的智慧结束了。相当新的,但这是RESTful吗?不是要弄清楚如何轻松完成任务?我喜欢Rails,并希望继续。

感谢您的聆听

1 个答案:

答案 0 :(得分:0)

你的发现失败了,因为params可能是:params[:user][:species_id]但是如果它就像它应该的那样,它也应该已经设置了。