Rails 3: создайте метод внутри контроллера, Post.new вместо current_user.posts.build - PullRequest
0 голосов
/ 18 июля 2011

У меня это как метод создания внутри моего PostsController

class PostsController < ApplicationController
    def create
        @user = current_user
        @post  = current_user.posts.build(params[:post])
        if @post.save
          flash[:success] = "Post created!"
          redirect_to root_path
        else
           @feed_items = current_user.feed.paginate(:per_page => "10", :page => params[:page])
          render 'pages/home'
        end
      end

Я бы хотел немного изменить его, чтобы также установить: user_id => params [: post] [: user_id]. Я пытаюсь это, но он не включает current_user, поэтому мне интересно, как эти методы создания отличаются и как бы я оставил ту же функциональность в current_user.posts.build (params [: post]) с Post.new?

def create
  @post = Post.new :user_id => params[:post][:user_id]
  @post.update_attributes params[:post] 
  if @post.save
    flash[:success] = "Post created!"
    redirect_to root_path
  else
    @feed_items = current_user.feed.paginate(:per_page => "10", :page => params[:page])
    render 'pages/home'
  end
 end  
end

1 Ответ

1 голос
/ 18 июля 2011

в вашем сообщении модель

def create
  @post = Post.new(params[:post])
  @post.user = current_user
  if @post.save
    flash[:success] = "Post created!"
    redirect_to root_path
  else
    @feed_items = current_user.feed.paginate(:per_page => "10", :page => params[:page])
    render 'pages/home'
  end
 end  
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...