我有几个模型……用户模型、收藏模型和灵感模型……
收藏模型 has_one 灵感
has_one :inspiration, :dependent => :destroy
belongs_to :user
灵感模型属于一个系列
belongs_to :collection
belongs_to :user
这是我的路线
resources :collections do
resources :inspiration
end
这是我的 InspirationController(它不是复数)
def index
@collection = Collection.find(params[:collection_id])
@inspiration = @collection.inspiration
end
def new
if signed_in? && current_user == @collection.user
@user = current_user
@collection = @user.collections.find(params[:collection_id])
@inspiration = @collection.inspiration.new
elsif signed_in? && current_user != @collection.user
flash[:error] = "That's not your collection."
redirect_to root_url
else
flash[:error] = "Please sign in."
redirect_to login_url
end
end
我对灵感的看法也是单一的(不是灵感)
在我一直使用 Rails 的所有时间里,我都没有使用 has_one 关联,但现在我遇到了一些错误......
当我查看页面时,我要么得到两个错误之一......
一个是未定义的灵感方法,它来自 InspirationController 中每个操作的第二行......另一个说的是未定义的方法 COUNT,因为我在视图中有一个 if 语句
if @collection.inspiration.count > 0
foobar foobar
end
在 Rails 控制台中,当我尝试查找特定集合的灵感计数时,我可以看到它甚至没有执行正确的查询....
任何人都可以对这个问题有所了解或指出一个很好的资源来阅读这种类型的关联......提前谢谢你
需要指出的一件事与我通常对 has_many 关联所做的不同... 1. 在包括路线、视图和控制器在内的很多地方,我使用单数“灵感”代替复数“灵感”。
这是 尝试创建新灵感时的编辑,我收到以下错误
undefined method `inspiration'
指向新动作
@user = current_user
@collection = @user.collections.find(params[:collection_id])
@inspiration = @collection.**inspiration**.new
出现问题的星星之间的灵感一词
干杯,贾斯汀