【发布时间】:2010-08-04 21:05:57
【问题描述】:
在 Rails 上使用 sqlite3 时,我遇到了关系问题。
首先我搭建我的脚手架, 添加对迁移文件的引用, 将belongs_to has_many 添加到模型 而不是使用基本的 rake db:migrate 命令启动并运行我的数据库。
然后它不起作用, 我想有一个我无法弄清楚的缺失步骤:S
顺便说一下,我正在尝试在 Building Dynamic Web 2.0 上实现示例 talewiki 使用 Ruby on Rails 的网站,我在第 75 页。 例子在mysql上。
class GenresController < ApplicationController
# GET /genres
# GET /genres.xml
def index
@genres = Genre.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @genres }
end
end
# GET /genres/1
# GET /genres/1.xml
def show
@genre = Genre.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @genre }
end
end
# GET /genres/new
# GET /genres/new.xml
def new
@genre = Genre.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @genre }
end
end
# GET /genres/1/edit
def edit
@genre = Genre.find(params[:id])
end
# POST /genres
# POST /genres.xml
def create
@genre = Genre.new(params[:genre])
respond_to do |format|
if @genre.save
format.html { redirect_to(@genre, :notice => 'Genre was successfully created.') }
format.xml { render :xml => @genre, :status => :created, :location => @genre }
else
format.html { render :action => "new" }
format.xml { render :xml => @genre.errors, :status => :unprocessable_entity }
end
end
end
# PUT /genres/1
# PUT /genres/1.xml
def update
@genre = Genre.find(params[:id])
respond_to do |format|
if @genre.update_attributes(params[:genre])
format.html { redirect_to(@genre, :notice => 'Genre was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @genre.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /genres/1
# DELETE /genres/1.xml
def destroy
@genre = Genre.find(params[:id])
@genre.destroy
respond_to do |format|
format.html { redirect_to(genres_url) }
format.xml { head :ok }
end
end
end
【问题讨论】:
-
究竟是什么不起作用?您看到了什么错误或行为?
-
ActiveRecord::RecordNotFound in GenresController#show 找不到 ID=tales 的流派
-
您能在该控制器中显示
show操作的代码片段吗?看起来它可能在查找器中使用了错误类型的键 -
我猜这行会造成问题,但为什么:S 但是如果你能建议一个关于“rails 中的 sqlite 关系”的好教程,我认为这对我们俩都会更好:D -
你的问题不太可能是Sqlite。对于这么简单的事情,它和 MySQL 一样好用。该错误意味着您将 ID 中的字符串而不是整数传递给查找器。可能使用了错误的
params条目。这就是我想看控制器代码的原因
标签: ruby-on-rails sqlite activerecord migration