2015-08-09 28 views
0

我在我的一個表單中有這個。我的表單中的其他所有內容都正確提交。在表單中選擇下拉列表中的參數值返回零

但是,當我嘗試獲得params [:invest_with]的價值時,我得到零?爲什麼是這樣。這是我在表單中唯一的選擇,所以也許我沒有正確設置它或什麼。

<div class="form-group"> 
     <label class="sr-only">Invest_With</label> 
     <div class="input-group"> 
      <div class="input-group-addon">Invest with: </div> 

      <select name="invest_with" class="form-control"> 
      <option name="invest_with" value="user">Your Personal Balance</option> 
      <% n = 0 %> 
      <% @lender_companies.each do |company| %> 
       <% n += 1 %> 
       <option name="invest_with" value="company <%= n %>"> <%= company.name %>'s Balance </option> 
      <% end %> 
      </select> 

     </div> 
     </div> 

這裏是我的整個形式:

<form class="form-inline" method="post" action="/private_investement" accept-charset="utf-8"> 
    <div class="form-group"> 
    <label class="sr-only">Amount</label> 
    <div class="input-group"> 
     <div class="input-group-addon">$</div> 
     <input type="number" min="10" max="<%[email protected]%>" class="form-control" name="amount" placeholder="Amount" required> 
    </div> 
    </div> 

<br><br> 

    <div class="form-group"> 
    <div class="input-group"> 
     <div class="input-group-addon">Invest with: </div> 

     <select name="invest_with" class="form-control" multiple required> 
     <option value="user">Your Personal Balance</option> 
     <%n=0%> 
     <%@lender_companies.each do |company|%> 
      <%n+=1%> 
      <option value="company<%=n%>"><%=company.name%>'s Balance</option> 
     <%end%> 
     </select> 

    </div> 
    </div> 


    <input type="hidden" name="loan_id" value="<%[email protected]%>"> 
    <input type="hidden" name="company" value="<%[email protected]%>"> 
    <input type="hidden" name="loan_amount" value="<%[email protected]%>"> 
    <input type="hidden" name="investor_money" value="<%=current_user.balance%>"> 
    <input type="hidden" name="company_money" value="<%[email protected]_company%>"> 

<br><br> 
    <button type="sumbit" class="btn btn-primary">Invest</button><br> 
    Once you press the invest button there is no coming back. 
</form> 

我的問題是如何解決這個問題?

+0

嘗試從'select'標記或'option'標記中去除'name'屬性。我不認爲你需要兩個'option'標籤嵌套。 –

+0

另外,你可以用'each_with_index'替換'each'。這會給你'n',而不是你必須這樣做。 –

+0

我試過只有一個名稱標籤,然後只在另一個,它仍然無法正常工作。我如何使用each_with_index獲取索引號? – Pabi

回答

1

我相信你想要這樣的東西。如果沒有看到表單的其餘部分,很難說清楚,但要確保正確設置了name屬性;檢查由形式產生的其他元素,你可能需要將名稱設爲類似user[invset_with]

<%= select_tag 'invest_with', 
    options_for_select(@lender_companies.map{ |c| [c.name, "company #{c.id}"] }), 
    {include_blank: 'Your Personal Balance', multiple: true, required: true, class: 'form-control'} 
%> 

另外,還要確保你permitting:invest_with參數

編輯

在張貼我在終端中給出以下內容簡化版:

Started POST "/private_investement" for ::1 at 2015-08-09 17:41:51 -0400 Processing by StaticPagesController#private_investement as HTML Parameters: {"amount"=>"13", "invest_with"=>["company1", "company3"], "loan_id"=>"77", "company"=>"company.name", "loan_amount"=>"loan.amount", "investor_money"=>"balance", "company_money"=>"lender_company"}

如果您願意提供您的日誌包含的東西。

+0

如果我將名稱設置爲這樣:user [invset_with],我將如何獲取應用程序控制器中所選項目的值? – Pabi

+0

我還編輯了我的帖子,添加了我的整個表單。 – Pabi

+1

如果你不打算使用rails'select_tag' helper並打算使用'multiple'屬性,你將需要改變select元素的名字。用'name =「invest_with []」'替換'name ='post [invest_with]「'' – kjmagic13