我有一个包含所有货币的长列表下拉菜单,我希望最后选择的值是列表中的默认选择值。我使用的是Rails 4.0.0和ruby 2.0.0
我不是在使用模型,我只是使用控制器。我已经将下拉列表选项放置在帮助器中。
form.html.erb
<div class="calculator">
<%= form_for :convertor, :url => {:controller => "converter", :action => "show" } do |f| %>
<%= f.label :from_currency %>
<%= f.select :from_currency, options_for_select(currencies, :selected => params[:from_currency]) %>
<%= f.text_field :amount, :placeholder => "Amount", id: "textfield" %>
<%= @amount %>
<br>
<%= f.label :to_currency %>
<%= f.select :to_currency, options_for_select(currencies, :selected => params[:to_currency].to_i ) %>
<%= @result %>
<br>
<%= f.submit "Calculate", class: "btn btn-large btn-primary", id: "submitButton" %>
<% end %>
</div>列表选项是从带有名称货币的助手*<%= f.select :to_currency,options_for_select(货币,:Selected=> params:to_currency.to_i ) %>*加载的。
帮助器中的下拉列表
def currencies
[
['United Arab Emirates Dirham (AED)', 'AED'],
['Netherlands Antillean Guilder (ANG)', 'ANG'],
['Argentine Peso (ARS)', 'ARS'],
['Australian Dollar (A$)', 'AUD'],
['Bangladeshi Taka (BDT)', 'BDT'],
['Bulgarian Lev (BGN)', 'BGN'],
['Bahraini Dinar (BHD)', 'BHD'],
]
end我在这里做错什么了?
发布于 2013-09-28 07:51:41
这能帮上忙
<%= f.label :from_currency %>
<% if @from_cur.present? %>
<%= f.select :from_currency, options_for_select(currencies, @from_cur) %>
<% else %>
<%= f.select :from_currency, options_for_select(currencies), :required => true %>
<% end %>
<%= f.text_field :amount, :placeholder => "Amount", :required => true, id: "textfield" %>
<br>
<%= f.label :to_currency %>
<% if @from_cur.present? %>
<%= f.select :to_currency, options_for_select(currencies, @to_cur), :required => true %>
<% else %>
<%= f.select :to_currency, options_for_select(currencies), :required => true %>
<% end %>我很感激。
发布于 2013-09-26 07:31:35
几件事:
:selected => params...在您的控制器中,您的意思是该参数名为:
params[:convertor][:from_currency]但在你看来,你有params[:from_currency]。
因此,解决这个问题的办法是这样做:
<%= f.select :from_currency, options_for_select(currencies, params[:convertor][:from_currency]) %>发布于 2013-09-26 08:15:56
这个密码适用于我。
在应用程序中帮助
module ApplicationHelper
def opts_for_select_cur
opts_for_select = [
['United Arab Emirates Dirham (AED)', 'AED'],
['Netherlands Antillean Guilder (ANG)', 'ANG'],
['Argentine Peso (ARS)', 'ARS'],
['Australian Dollar (A$)', 'AUD'],
['Bangladeshi Taka (BDT)', 'BDT'],
['Bulgarian Lev (BGN)', 'BGN'],
['Bahraini Dinar (BHD)', 'BHD'],
]
return opts_for_select
end
end以及在视野中
<script type="text/javascript">
$(document).ready(function(){
$('#st').change(function(){
var inputText = $('#st :selected').val();
$("#hidden_one").val(inputText);
$("a").attr("href", "?value="+inputText );
});
$('#aa').click(function(){
var inputText = $('#st :selected').val();
$("a").attr("href", "?value="+inputText );
});});
<%= f.select :text, options_for_select(opts_for_select_cur, params[:value]), {}, { id: "st" } %>
<br>
<%= link_to "refresh",nil, id: "aa" %>结果是一个选择值为.的复选框。
https://stackoverflow.com/questions/19021937
复制相似问题