我的Rails應用程序出現問題,我部署到Heroku。 當我做POST我的俱樂部資源,它說:在設計和Heroku的Rails 3中沒有方法錯誤
Parameters: {"utf8"=>"✓","authenticity_token"=>"MqScpac6l9MMHdPBehqfq0mTwLCCZq2dlZLVY6wt+ow=",
"club"=> {"name"=>"Grün Weiß Club im PSV Kiel"}, "commit"=>"absenden"}
2012-12-31T03:10:49+00:00 app[web.1]: NoMethodError (undefined method `user_id=' for # <Club:0x000000061269b0>):
2012-12-31T03:10:49+00:00 app[web.1]:
2012-12-31T03:10:49+00:00 app[web.1]:
2012-12-31T03:10:49+00:00 app[web.1]: app/controllers/clubs_controller.rb:47:in `create'
我的模型看起來是這樣的:
class Club < ActiveRecord::Base
default_scope :order => 'name ASC'
attr_accessible :name, :user_id
belongs_to :user
has_many :memberships
has_many :users, :through => :memberships, :order => 'name ASC'
validates :name, presence: true, :uniqueness => true
end
和控制器創建這樣的動作:
def create
@club = Club.new(params[:club])
@club.user_id = current_user.id
respond_to do |format|
if @club.save
format.html { redirect_to @club, notice: 'Club was successfully created.' }
format.json { render json: @club, status: :created, location: @club }
else
format.html { render action: "new" }
format.json { render json: @club.errors, status: :unprocessable_entity }
end
end
end
的認證由設計寶石完成。另外令我困惑的是,如果我在heroku上運行rails控制檯,它會說:
irb(main):001:0> Club
=> Club(id: integer, name: string, created_at: datetime, updated_at: datetime, user_id: integer)
所以即使是DB也應該是正確的。 感謝您的幫助!
嘗試運行的'heroku運行rake db:migrate' –
你是否在本地得到同樣的錯誤? –
即使遷移heroku db,我今天也遇到類似問題。我做了一個「heroku重啓」,並修復了它。 –