我是Rails.in的新手,我正在创建一个Rails项目,其中Product和Character是模型。我有以下问题。字符中的NoMethodError#new
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)
注意:在迁移它之前,我已经为名称属性的值创建了字符高度,重量,宽度和颜色。
Q3。如果这样做(即Q2),我想在'产品展示页面中显示角色名称和值。为此,我如何重定向到'show'页面的产品..?
我新,表演characterscontroller创造:
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
现在好了,进入值中的字符/新字符,然后点击创建按钮,它也会trowing以下错误
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
请你分享你'character_controller'为'new', “创建”和“显示”操作? – rony36 2013-05-03 12:39:56