多くのマイクロポストを持つユーザーがいます。マイクロポストはユーザーのものです。現在、ユーザーのみが自分のプロフィールに投稿できます。誰もがそこに投稿できるようにするにはどうすればよいですか。列「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 %>
Microposts テーブルでは、User_id をプロファイルを持つ人物に、Sender_id を他のプロファイルに投稿するユーザーにします。
解決策は、hidden_field_tag をマイクロポスト フォームに追加して user_id パラメータ セットを取得し、次に @user = User.find(params[:user_id]) を追加することでした。