2012-07-05 80 views
1

當視圖將參數傳遞給控制器​​時,控制器 以某種方式獲得所有爭論的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 

的意見/郵件/ 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 %> 

回答

8

檢查你的HTML源來更好地瞭解FormHelpers的功能。

隨着form_forf.text_field將產生名稱屬性的格式爲:

messages[subject] 

因此,您的PARAMS將在格式:

params[:messages][:subject] 

您還可以使用<%= debug params %>檢查什麼在PARAMS ,這非常有幫助。

+0

美麗的答案!謝謝! – MKK 2012-07-05 15:20:41

+0

我第一次;-) – 2012-07-05 16:06:50

1

您可以使用參數值
datas = params[:messages]
這些值是以數組形式存在的。所以,如果你想個人數據,然後使用
subject = datas[:subject]
body = datas[:body]

要考慮
<%= subject %>
這給主題的值檢查運行下面的代碼,你可以獲取數組datas

+0

美麗的答案!謝謝! – MKK 2012-07-05 15:20:51

相關問題