1

当视图将参数传递给控制器​​时,控制器以某种方式对所有争论都为零。

谁能解决这个问题??谢谢!

而且我没有名为“消息”的模型

控制器/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

<%=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

2 回答 2

9

检查您的源 HTML 以更好地了解 FormHelpers 的作用。

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

messages[subject]

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

params[:messages][:subject]

您还可以使用<%= debug params %>来检查参数中的内容,这非常有帮助。

于 2012-07-05T10:23:24.723 回答
1


datas = params[:messages]
您可以使用这些值以数组形式获取参数值。所以你可以获取数组datas如果你想要单独的数据然后使用 检查运行以下代码查看 这给出了主题的值。
subject = datas[:subject]
body = datas[:body]


<%= subject %>

于 2012-07-05T10:46:27.587 回答