我是 Rails 新手。我正在创建一个 Rails 项目,其中 Product 和 Character 是模型。我有以下问题。
Q1。两个模型之间给定的关联是否正确?
class Product < ActiveRecord::Base
has_many :characters
end
class Character < ActiveRecord::Base
belongs_to :product
end
Q2。我创建了一个链接以在产品的“显示”页面中添加新字符,例如,如果我们单击添加新字符,它应该显示一个“新”字符页面,其中我应该有一个字符名称下拉列表(即高度,宽度、重量和颜色),但事实并非如此。
它显示NoMethodError in Characters#new
错误。
在我的字符/新文件的下一行中出现错误。
collection_select(:product, :c_id, @character, :id, :name)
注意:在迁移之前,我在字符中创建了 name 属性的值,例如 height、weight、width、color。
Q3。如果可行(即 Q2),我想在产品的“显示”页面中显示角色名称和值。为此,我如何重定向到产品的“显示”页面..?
我的新角色控制器,显示和创建:
def show
@product = Product.find(params[:id])
@character = Character.find(params[:id])
end
def new
@character = Character.new(params[:character])
@product = Product.find(params[:id])
end
def create
@character = Character.new(params[:character])
if @character.save
redirect_to :action => 'show', :id => @product.id
else
render :action => 'new'
end
end
现在好了,在 characters/new 中输入字符的值并单击创建按钮后,它会出现以下错误
ActiveRecord::RecordNotFound in ProductsController#show
Couldn't find Product without an ID
我想在产品/节目中显示角色名称和值。上述错误阻止我这样做..
我在 productscontroller 中的显示方法:
def show
@product = Product.find(params[:id])
@character = Character.find(:all)
end