ruby on rails form并将其参数传递给控制器

MKK*_*MKK 1 controller view parameter-passing ruby-on-rails-3

当视图将参数传递给控制器​​时,控制器以某种方式获得所有争论的nil.

任何人都可以解决这个问题?谢谢!

我没有名为"消息"的模特

控制器/ 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
Run Code Online (Sandbox Code Playgroud)

视图/消息/ new.html.erb

<%=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 %>
Run Code Online (Sandbox Code Playgroud)

Waw*_*Loo 8

检查源HTML,以便更好地了解FormHelper的功能.

使用form_for f.text_field将生成以下格式的名称属性:

messages[subject]
Run Code Online (Sandbox Code Playgroud)

因此,您的参数将采用以下格式:

params[:messages][:subject]
Run Code Online (Sandbox Code Playgroud)

您还可以使用<%= debug params %>检查params中的内容,这非常有用.