Rails中的Check_Box_Tag

时间:2012-03-20 18:07:05

标签: ruby-on-rails checkbox

我正在使用rails 3.1和ruby 1.9.2。使用checkbox_tag我希望当我点击复选框时,变量(表示@post)设置为true然后它传递给控制器​​。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

以下是使用ajax从视图中实时编辑/保存的jquery和视图代码的示例:

在application.js中:

 jQuery('#tranx_field').live('change', function() {
    var attr_value = $(this).val();
    var attr_name =  $(this).next("input[id=attr_name]").val();
    var tranx_id = $(this).parent().parent().parent().children("input[id=tranx_id]").val();

    $.ajax({
        url: "/tranxes/" + tranx_id,
        dataType: "json",
        type: "PUT",
        processData: false,
        contentType: "application/json",
        data: "{\"tranx\":{\"" + attr_name + "\":\"" + attr_value + "\"}}"
    });
 });

视图代码:

<%= hidden_field_tag 'tranx_id', @tranx.id %>
    <div class="row">
      <div class="span6 id="left_col">
            <b>Salesrep:</b>
                <%= text_field_tag 'tranx_field', @tranx.salesrep,:class => "itemfieldsm" %>
                <%= hidden_field_tag 'attr_name', "salesrep" %>
            <br>

以下链接可帮助我解决这个问题:http://blog.project-sierra.de/archives/1788

答案 1 :(得分:0)

在视图中,您可以添加以下内容

hidden_field_tag 'post', false
check_box_tag 'post', true
提交表单时,在控制器中

,您只需指定它:

@post = params[:post]

隐藏值只是设置默认值,如果选中该复选框,将会覆盖该值