如何将我当前登录的用户与我的帖子建立关联?
我的帖子模型:
before_create :owner belongs_to :user def owner self.user_id = current_user.id end
但是这个dosent工作是因为我不能在model中使用current_user的方法.
这是我的控制器:
class PostsController < ApplicationController before_filter :authenticate_user! # GET /posts # GET /posts.xml def index @posts = Post.all respond_to do |format| format.html # index.html.erb format.xml { render :xml => @posts } end end # GET /posts/1 # GET /posts/1.xml def show @post = Post.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @post } end end # GET /posts/new # GET /posts/new.xml def new @post = Post.new respond_to do |format| format.html # new.html.erb format.xml { render :xml => @post } end end # GET /posts/1/edit def edit @post = Post.find(params[:id]) end # POST /posts # POST /posts.xml def create @post = Post.new(params[:post]) respond_to do |format| if @post.save format.html { redirect_to(@post,:notice => 'Post was successfully created.') } format.xml { render :xml => @post,:status => :created,:location => @post } else format.html { render :action => "new" } format.xml { render :xml => @post.errors,:status => :unprocessable_entity } end end end # PUT /posts/1 # PUT /posts/1.xml def update @post = Post.find(params[:id]) respond_to do |format| if @post.update_attributes(params[:post]) format.html { redirect_to(@post,:notice => 'Post was successfully updated.') } format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @post.errors,:status => :unprocessable_entity } end end end # DELETE /posts/1 # DELETE /posts/1.xml def destroy @post = Post.find(params[:id]) @post.destroy respond_to do |format| format.html { redirect_to(posts_url) } format.xml { head :ok } end end end
如何建立协会?所以,post user_id coloumn被分配了current_user.id
解决方法
加
@post.user = current_user
在你的创建动作.
或者如果你有has_many:用户模型的帖子关联做:
@post = current_user.posts.new(params[:post]) if @post.save ...