2013-04-30 76 views
0

我有許多Microposts的用戶。 Microposts屬於用戶。現在只有用戶可以發佈他/她的個人資料。我如何讓每個人都在那裏發帖。我已經運行了一個遷移,將列「sender_id」添加到Micropost表中,但我似乎無法弄清楚如何使用sender_id工作。感謝閱讀,我是新手。我如何允許用戶發佈其他人的個人資料

微柱創建控制器:

@user = User.find(73) #change so it posts to the user page im on 
@micropost = @user.microposts.build(params[:micropost]) 
@micropost.sender_id = current_user.id 
if @micropost.save 
    flash[:success] = "Music Posted!" 
    redirect_to :back 
end 

微柱形式:

<%= form_for(@micropost) do |f| %> 
    <div class="field"> 
    <%= f.text_area :comment, placeholder: "send a message" %> 
    </div> 
    <%= f.submit "Share", class: "btn btn-medium btn-primary" %> 
<% end %> 

在微柱表我想USER_ID要與輪廓和SENDER_ID的人是用戶認爲在其他帖子個人資料。

的解決辦法是添加hidden_​​field_tag的形式,微柱得到USER_ID參數組,然後@user = User.find(PARAMS [:USER_ID])

回答

1

你可以更改您的代碼如下:

@user = User.find(73) #change so it posts to the user page im on 
@micropost = @user.microposts.build(params[:micropost]) 
@micropost.sender = current_user # or whatever indicates your current user 
if @micropost.save 
    flash[:success] = "Music Posted!" 
    redirect_to :back 
end 
+0

感謝任何想法我應該爲@user在這裏? – Jaqx 2013-04-30 05:54:58

+0

這取決於您使用的路由。如果你有/ users /:user_id/microposts之類的東西,那麼你可以把'params [:user_id]'替換爲「73」。您應該檢查執行操作時params變量包含的內容,以確定您是否可以檢索此信息。 – 2013-04-30 05:59:25

+0

@user = User.find(params [:user_id])返回「無法找到沒有ID的用戶」。我認爲它會起作用。這是因爲帖子還沒有創建,但user_id是無效的帖子? – Jaqx 2013-04-30 06:03:19

相關問題