0

recipientパラメータをコントローラに渡したい。次のようにビューに表示できます。

@recipient.username

この値を に渡すにはどうすればよいparams[:message][:recipient]ですか? 「メッセージ」というモデルがないことに注意してください。

コントローラー/messages_controller.rb

def deliver
  recipient = User.find_by_username(params[:recipient])
  subject = params[:subject]
  body = params[:body]

  current_user.send_message(recipient, body, subject)
  redirect_to :controller => 'messages', :action => 'received' 
  flash[:notice] = "message sent!"
end

ビュー/メッセージ/new.html.erb

<td><%= @recipient.username if @recipient %></td>

<%=form_for :messages, url: url_for( :controller => :messages, :action => :deliver ) do |f| %>
  <div class="field">
    <%= f.label :subject %><br />
    <%= f.text_field :subject %>
  </div> 

  <div class="field">
    <%= f.label :body %><br />
    <%= f.text_field :body %>
  </div>

  <div class="actions">
    <%= f.submit %>
<% end %>
4

1 に答える 1

2

これを行うには、受信者に attr_accessible キーを割り当て、それをフォームに割り当てます。

form_for :message do |f|
  f.hidden_field :recipient_id, :value => @recipient.id.to_i
  f.text_field :message
  f.submit
end

これを作成アクションに渡すと、params[:message][:recipient_id] を確認できます

これをdbに渡します。

楽しむ

于 2012-07-05T15:38:50.717 に答える