Ruby on rails 如何在RubyonRails中存储others选项值并基于所选值下拉所选值
我是RubyonRails新手,这里我确实有一个下拉选择框 如果我选择其中任何一个选项,它都应该被存储,以防 我选择“其他”意味着应该再出现一个文本框 值应存储在数据库中 EZEU控制器.rb ezetab.rb new.html.erbRuby on rails 如何在RubyonRails中存储others选项值并基于所选值下拉所选值,ruby-on-rails,Ruby On Rails,我是RubyonRails新手,这里我确实有一个下拉选择框 如果我选择其中任何一个选项,它都应该被存储,以防 我选择“其他”意味着应该再出现一个文本框 值应存储在数据库中 EZEU控制器.rb ezetab.rb new.html.erb '选中SelectedOne(this.value);'% 功能检查选择单(val){ 警报(“又来了一个文本框”); var元素=document.getElementById('newtext'); 如果(val==‘其他’) element.style
'选中SelectedOne(this.value);'%
功能检查选择单(val){
警报(“又来了一个文本框”);
var元素=document.getElementById('newtext');
如果(val==‘其他’)
element.style.display='block';
其他的
element.style.display='none';
}
有人能告诉我如何存储下拉列表中选定的一个吗
因为我只能存储其他操作文本字段
所选下拉列表我无法选择,请让我知道,因为我
我从昨天开始完成这一个,提前谢谢
你试过这样吗
ezetabs_controller.rb
def create
if params[:ezetab][:others] != nil
eze_params = ezetab_params.merge!(city: params[:ezetab][:others])
else
eze_params = ezetab_params
end
@ezetab = Ezetab.new(eze_params)
if @ezetab.save
redirect_to @ezetab
else
render 'new'
end
end
private
def ezetab_params
ep = params.require(:ezetab).permit(:name, :email, :phonenumber, :organization, :city)
end
validates :city, presence: true
<div class="form-group clearfix">
<div class="col-sm-2" id="mainone">
<%#= form.text_field :city, placeholder: "CITY", class: 'form-control required' %>
<%= form.select :city, options_for_select([['DELHI'],['GURGAON'],['FARIDABAD'],['GHAZIABAD'],['NOIDA'],['MUMBAI'],['THANE'], ['BANGALORE'],['OTHERS']]), {include_blank: 'CITY*'}, class: 'form-control required', name: 'city', :onchange => 'Checkselectedone(this.value);' %>
<% if @ezetab.errors[:city].present? %>
<span class="error_msg"><%= @ezetab.errors[:city][0]%></span>
<% end %>
</div>
</div>
<div class="form-group clearfix">
<div class="col-sm-2">
<%#= form.text_field :others, "", id: 'newtext',style: 'display:none;' %>
<%= text_field_tag :others, "", class: 'form-control', id: 'newtext', style: 'display:none;' %>
</div>
</div>
<script type="text/javascript">
function Checkselectedone(val){
alert("one more text box is coming");
var element=document.getElementById('newtext');
if(val=='OTHERS')
element.style.display='block';
else
element.style.display='none';
}
ezetabs_controller.rb
def create
if params[:ezetab][:others] != nil
eze_params = ezetab_params.merge!(city: params[:ezetab][:others])
else
eze_params = ezetab_params
end
@ezetab = Ezetab.new(eze_params)
if @ezetab.save
redirect_to @ezetab
else
render 'new'
end
end
private
def ezetab_params
ep = params.require(:ezetab).permit(:name, :email, :phonenumber, :organization, :city)
end