0

多くのマイクロポストを持つユーザーがいます。マイクロポストはユーザーのものです。現在、ユーザーのみが自分のプロフィールに投稿できます。誰もがそこに投稿できるようにするにはどうすればよいですか。列「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]) を追加することでした。

4

1 に答える 1

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
于 2013-04-30T05:48:41.673 に答える