2012-07-05 145 views
0

我想将参数recipient传递给控制器​​。如何将隐藏参数传递给Rails3中的控制器

@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 %> 
+1

看一看这个http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-hidden_​​field – 2012-07-05 15:35:11

回答

1

您可以通过给你的收件人的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 [:留言] [:recipient_id]

,并把它传递给分贝。

玩得开心

相关问题