Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 保存前请检查帖子的类别_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 保存前请检查帖子的类别

Ruby on rails 保存前请检查帖子的类别,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个模型呼叫职位,和其他模型呼叫类别,其中一个职位有多个类别 在我的新帖子中,我的所有类别都像一个按钮,我通过点击来选择类别并更改按钮的类别。(显示按钮) 当我点击提交按钮时,如何知道用户是否点击了任何类别?没有javascript/ajax就可以做到这一点 我想在保存邮件之前做这个检查 这是我的分类按钮 .row-fluid .field = f.label :category - @categories.each do |cate| =

我有一个模型呼叫职位,和其他模型呼叫类别,其中一个职位有多个类别

在我的新帖子中,我的所有类别都像一个按钮,我通过点击来选择类别并更改按钮的类别。(显示按钮)

当我点击提交按钮时,如何知道用户是否点击了任何类别?没有javascript/ajax就可以做到这一点

我想在保存邮件之前做这个检查

这是我的分类按钮

  .row-fluid
    .field
      = f.label :category
      - @categories.each do |cate|
        = button_tag(:class=> 'categoryButton', :type =>'button', :value=> cate.id) do
          = content_tag(:strong, cate.name)

  .row-fluid
    .actions.pull-right
      = f.submit t(:save)


:javascript
  $(document).ready(function(){
  $('.categoryButton').click(function(){
    if (this.className == "categoryButtonCambiado")
      this.className=this.className ="categoryButton"
    else
      this.className=this.className ="categoryButtonCambiado"
  });
  })

任何想法

您可能应该将其作为复选框而不是按钮来实现,这对于实现和用户习惯来说都更为自然

如果您确实想使用按钮,您仍然可以添加复选框,使其隐藏(使用
隐藏
类,因为您似乎正在使用引导),并使用javascript选中/取消选中它们:

  .row-fluid
    .field
      = f.label :category
      - @categories.each do |cate|
        = check_box_tag "categories[#{cate.id}]", '1', false, class: 'hidden'
        = button_tag(:class=> 'categoryButton', :type =>'button', :value=> cate.id) do
          = content_tag(:strong, cate.name)

  .row-fluid
    .actions.pull-right
      = f.submit t(:save)


:javascript
  $(document).ready(function(){
  $('.categoryButton').click(function(){
    if (this.className == "categoryButtonCambiado")
      this.className=this.className ="categoryButton"
      $(this).prop( 'checked', true );
    else
      this.className=this.className ="categoryButtonCambiado"
      $(this).prop( 'checked', false );
  });
  })
然后,您可以在控制器中检索选中的类别ID:

params[:categories]