我有這個作爲我的創建方法,我的PostsController的Rails 3:控制器中創建方法,Post.new代替current_user.posts.build
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
剛一說明:根據您的預期目的,你可能不希望用戶ID的幾乎任何人可分配?如果沒有,那麼你應該使user_id attr_accessible。 – Zabba
對不起,但你能詳細說明一點,我是編程和軌道新手,所以我不完全確定你的意思。我明白attr_accessible允許從表單進行批量分配。我現在沒有我的attr_accessible下的user_id。我正在尋找將帖子的user_id設置爲創建帖子本身的用戶的user_id。謝謝。 –