0

ここでは、パラメータによって受信者を定義しています。
一度に確認したすべてのユーザーにメッセージを送信したい場合はどうすればよいですか?
どうすれば書くことができますか?

誰かが何か考えを持っていますか?

コントローラ

    recipient = User.find_by_username(params[:messages][:recipient]) 

    if recipient.confirmed_at.nil?
        redirect_to messages_sent_path 
        flash[:notice] = "This user hasn't confirmed yet!"   
        return
    end

    params[:messages][:subject] = 'no subject' if params[:messages][:subject].blank?
    subject = params[:messages][:subject] 
    body = params[:messages][:body]

    if current_user != recipient 
        current_user.send_message(recipient, body, subject) 
        redirect_to :controller => 'messages', :action => 'sent' 
        flash[:notice] = "Sent!" 
    else 
        redirect_to :controller => 'messages', :action => 'received' 
        flash[:notice] = "Cannot send to yourself!" 
    end
4

1 に答える 1

1

mysql/sqlite3を使用している場合

users = User.where('confirmed_at IS NOT NULL')
users.each do |user|
  current_user.send_message(user, body, subject) 
end
于 2013-03-05T15:24:12.153 に答える