Ruby 使用Rails 3选中复选框时如何获取表值
我有一个数据表,每行包含一个复选框。我需要用户单击复选框,然后使用Rails检索相应的行值。我的表如下所示 paymentdetails.html.erb:Ruby 使用Rails 3选中复选框时如何获取表值,ruby,ruby-on-rails-3.2,Ruby,Ruby On Rails 3.2,我有一个数据表,每行包含一个复选框。我需要用户单击复选框,然后使用Rails检索相应的行值。我的表如下所示 paymentdetails.html.erb: 序号 日期 收据号码。 数量 r%> 支付控制器.rb: class PaymentsController参数[:v_名称]).map{v|v|[v.v_分类,v.Receipt_编号]} #@vendor_type=PaymentVendor.where(:v_name=>params[:v_name]).pluck(:v_分类) 输
序号
日期
收据号码。
数量
r%>
支付控制器.rb:
class PaymentsController参数[:v_名称]).map{v|v|[v.v_分类,v.Receipt_编号]}
#@vendor_type=PaymentVendor.where(:v_name=>params[:v_name]).pluck(:v_分类)
输出=[]
@结果=[]
@供应商|类型。每个do | i|
如果i.first==params[:payment][:s_分类]
输出虽然这不是您问题的答案,但请注意,您的所有复选框都具有相同的id
(“checkbox1-1”
)。您可能想要改变这一点,因为它可能会在以后引起问题。ID应该是唯一的。@Myst:现在你有什么解决方案吗?我唯一能想到的就是编写一个(使用onclick
javascript回调)来发送信息。但这可能会将web应用程序的使用限制在支持javascript的设备上,而且我的javascript不是很强。我希望其他人能想出更好的解决方案。@Myst:你能帮我解决这个问题吗?我有一个生成的html输入字段是这样的。你能告诉我如何访问控制器页面中的字段值吗。
<table class="table table-bordered">
<colgroup>
<col class="col-md-1 col-sm-1">
<col class="col-md-1 col-sm-1">
<col class="col-md-3 col-sm-3">
<col class="col-md-3 col-sm-3">
<col class="col-md-4 col-sm-4">
</colgroup>
<thead>
<tr>
<th class="text-center"><input type="checkbox"></th>
<th class="text-center">Sl. No</th>
<th class="text-center">Date</th>
<th class="text-center">Receipt No.</th>
<th class="text-center">Amount</th>
</tr>
</thead>
<tbody>
<% @result.each do |r| %>
<tr>
<th class="text-center"><%= check_box_tag :check_value,:value => r %></th>
<td class="text-center"><%= r.id %></td>
<td class="text-center"><%= r.c_date %></td>
<td class="text-center"><%= r.Receipt_No %></td>
<td class="text-center"><i class="fa fa-rupee"></i><%= r.v_amount %></td>
</tr>
<% end %>
</tbody>
</table>
class PaymentsController < ApplicationController
def payment
@payment=Vendor.new
@add_payment=AddPayment.new
respond_to do |format|
format.html
format.js
end
end
def check_type
if params[:commit]=="submit"
@vendor_type = PaymentVendor.where(:v_name => params[:v_name]).map{|v|[v.v_catagory ,v.Receipt_No]}
#@vendor_type = PaymentVendor.where(:v_name => params[:v_name]).pluck(:v_catagory)
output=[]
@result=[]
@vendor_type.each do |i|
if i.first == params[:payment][:s_catagory]
output << i[1]
end
end
output.each_with_index{|val, index|
#puts "#{val} => #{index}"
#puts output1[index]
@result << PaymentVendor.find_by_Receipt_No(output[index])
}
else
@v_name=Vendor.where(:s_catagory => params[:payment][:s_catagory] ).pluck(:v_name)
end
end
def add_payment
if params[:commit]
else
if params[:add_payment][:p_catagory]=="Cheque"
end
end
end
end