我絕對完全消息Rails和MongoDB中來。我一直在關注一本好書的教程,並創建我的第一個輕量級Twitter副本的Rails應用程序。一切都很順利。Rails代碼拋出NoMethodError(未定義的方法`每個」爲‘4d2aeaea4403baa84a000005’:字符串)
但正如我的學習過程的一部分,我想建立的MongoDB使用,而不是默認SGBD相同的應用程序。
我因此配置蒙戈和安裝mongo_mapper寶石。按照本教程,所有內容都已正確配置:http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started。然後我掙扎了一下,讓Rails生成工作而不會拋出--orm沒有指定的錯誤。爲了解決這個問題,我必須添加rails3-generators gem並將其添加到Gemfile中。
一旦這一切的事,一切正常。我能夠成功地啓動Rails服務器。
我添加了一個用戶控制器得益於產生。該網頁能正常工作,甚至列出了我以前添加的用戶:
但是所有其他行動,顯示,編輯,刪除等不工作(創造作品,但隨後向人展示和錯誤來):
這是幾乎所有不同的動作同樣的錯誤。
我可以注意到的一個區別是非MongoDB db,用戶的id是從1開始的,等等,但是在MongoDB中,它看起來像一個隨機生成的更復雜的id而不是int類型:4d2ae91d4403baa84a000002
我在想這可能是創建問題,因爲所有操作都使用id作爲參數......但我不知道如何解決這個問題。我看了看ruby生成的代碼,它看起來對我來說很好(非常類似於爲默認數據庫生成的代碼)。
任何幫助將不勝感激!如果沒有用mongodb解決簡單的生成代碼,我不知道如何繼續我的項目。
感謝,
亞歷
PS: 取悅我沒有寫任何代碼,這在所有。一切都已經產生,這是有點爲什麼我希望從一開始去...
工作的要求在這裏是users_controllers代碼:
class UsersController < ApplicationController
# GET /users
# GET /users.xml
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
# GET /users/1
# GET /users/1.xml
def show
@user = User.first(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
# GET /users/new
# GET /users/new.xml
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end
# GET /users/1/edit
def edit
@user = User.first(params[:id])
end
# POST /users
# POST /users.xml
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to(@user, :notice => 'User was successfully created.') }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
# PUT /users/1
# PUT /users/1.xml
def update
@user = User.first(params[:id])
respond_to do |format|
if @user.update(params[:user])
format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /users/1
# DELETE /users/1.xml
def destroy
@user = User.first(params[:id])
@user.destroy
respond_to do |format|
format.html { redirect_to(users_url) }
format.xml { head :ok }
end
end
end
請向我們展示`users_controller.rb`的第16行。 – 2011-01-10 12:22:31
juste編輯帖子。 – Alex 2011-01-10 12:35:11