## user:0x00000103047730> </user:0x00000103047730>错误未定义方法`categories'

时间:2011-11-07 20:05:19

标签: ruby-on-rails ruby

这发生在我的app / controllers / categories_controller.rb中:3:在`create'中 我计划开发一个博客,每个用户都可以为他们的微博创建少数类别。因此每个微博只能有一个类别。我有3个表:用户,微博和类别。我的目的是让用户在用户个人资料页面添加类别。

model/category.rb
class Category < ActiveRecord::Base
    belongs_to :user    
    attr_accessible :category
end

模型/ user.rb

has_many :category, :dependent => :destroy
accepts_nested_attributes_for :category, :reject_if =>lambda {|a| a[:category].blank?}  

categoriesController

class CategoriesController < ApplicationController
def create
    @category = current_user.categories.new(params[:category])
    if @category.save 
        flash[:success] = "Category created!"
        redirect_to @user
    else
        flash[:error] = "Category not created."
        render @user
    end
  end
end

usersController

def show
    @user = User.find(params[:id])
    @title = @user.name
    @category = @user.category.new
end

用户show.html

<%= form_for @category do |f|%>
        <%= hidden_field_tag :user_id, @user.id  %>
        <%= f.label :category ,"Category:"%>
        <%=h f.text_field :category %><br />
        <%= f.submit "Add Category" %>  
 <% end %>

1 个答案:

答案 0 :(得分:4)

User模型中,您有关系

has_many :category

但是在控制器中获取用户分类 ies

current_user.categories

将关系名称重命名为has_many :categories