Ruby on rails HABTM-添加和删除按钮(在“显示”视图上)

Ruby on rails HABTM-添加和删除按钮(在“显示”视图上),ruby-on-rails,simple-form,has-and-belongs-to-many,Ruby On Rails,Simple Form,Has And Belongs To Many,我正在显示一张发票,我想在其中添加“飞行”产品。我想使用产品的下拉框和添加按钮来完成这项工作。将产品添加到发票后,我希望能够单击删除按钮将其删除 我目前已经通过控制台完成了这项工作,但不确定如何在前端完成这项工作 如何设置: 用户模型: class User < ActiveRecord::Base .... has_many :invoices .... end class用户@invoices.id},{:method=>:post}%> 有两个很好的宝石:

我正在显示一张发票,我想在其中添加“飞行”产品。我想使用产品的下拉框和添加按钮来完成这项工作。将产品添加到发票后,我希望能够单击删除按钮将其删除

我目前已经通过控制台完成了这项工作,但不确定如何在前端完成这项工作

如何设置:

用户模型:

class User < ActiveRecord::Base

....
has_many :invoices
....
end
class用户
发票型号:

class Invoice < ActiveRecord::Base
  attr_accessible :active
  validates :user_id, presence: true
  belongs_to :user

  has_many :categorizations
  has_many :flies, through: :categorizations
end
class发票
发票迁移:

class CreateInvoices < ActiveRecord::Migration
  def change
    create_table :invoices do |t|
      t.boolean :active
      t.integer :user_id

      t.timestamps
    end
    add_index :invoices, :user_id
  end

end
class CreateCategorizations < ActiveRecord::Migration
  def change
    create_table :categorizations do |t|
      t.integer :user_id
      t.integer :fly_id

      t.timestamps

      add_index :categorizations, :user_id
      add_index :categorizations, :fly_id
    end
  end
end
class CreateFlies < ActiveRecord::Migration
  def change
    create_table :flies do |t|
      t.string :name
      t.string :description

      t.timestamps
    end
  end
end
class CreateInvoices
分类模型:

class Categorization < ActiveRecord::Base
  attr_accessible :fly_id, :user_id

  belongs_to :invoice
  belongs_to :fly
end
类分类
分类迁移:

class CreateInvoices < ActiveRecord::Migration
  def change
    create_table :invoices do |t|
      t.boolean :active
      t.integer :user_id

      t.timestamps
    end
    add_index :invoices, :user_id
  end

end
class CreateCategorizations < ActiveRecord::Migration
  def change
    create_table :categorizations do |t|
      t.integer :user_id
      t.integer :fly_id

      t.timestamps

      add_index :categorizations, :user_id
      add_index :categorizations, :fly_id
    end
  end
end
class CreateFlies < ActiveRecord::Migration
  def change
    create_table :flies do |t|
      t.string :name
      t.string :description

      t.timestamps
    end
  end
end
class CreateCategorizations
飞行模型:

class Fly < ActiveRecord::Base
  attr_accessible :description, :name
  validates :description, :name, presence: true

  has_many :categorizations
  has_many :invoices, through: :categorizations
end
class Fly
快速迁移:

class CreateInvoices < ActiveRecord::Migration
  def change
    create_table :invoices do |t|
      t.boolean :active
      t.integer :user_id

      t.timestamps
    end
    add_index :invoices, :user_id
  end

end
class CreateCategorizations < ActiveRecord::Migration
  def change
    create_table :categorizations do |t|
      t.integer :user_id
      t.integer :fly_id

      t.timestamps

      add_index :categorizations, :user_id
      add_index :categorizations, :fly_id
    end
  end
end
class CreateFlies < ActiveRecord::Migration
  def change
    create_table :flies do |t|
      t.string :name
      t.string :description

      t.timestamps
    end
  end
end
class
显示发票视图:

<h3>Invoice</h3>
<p>User Name:
  <%= @invoice.user.name %></p>
<p>
  Invoice ID:
  <%= @invoice.id %></p>
<p>
  Invoice Active?:
  <%= check_box_tag 'admin', '1', @invoice.active, :disabled => true %></p>
<p>Email:
  <%= @invoice.user.email if @invoice.user.email %></p>
<table class="table table-condensed">
  <thead>
    <tr>
      <th>Invoice Flies</th>
    </thead>
    <tbody>
      <% @invoice.flies.each do |fly| %>
        <tr>
          <td><%= fly.name %></td>
        </tr>
      <% end %>
    </tbody>
  </table>

  <%= simple_form_for(@categorization) do |f| %>
      <%= render 'shared/error_messages', object: f.object %>

#this is where I want to add my 'add product to invoice' functionality


      <%= f.submit "Add Fly to Invoice", class: "btn btn-large btn-primary" %>
    <% end %>


  <%= button_to "Mark as Sent", {:controller => :invoices, :action => :activate, :id => @invoice.id }, {:method => :post } %>
<%= button_to "Mark as not sent", {:controller => :invoices, :action => :deactivate, :id => @invoice.id }, {:method => :post } %>
<br><br>
  <%= link_to "Back to list of invoices", invoices_path %>
发票
用户名:

发票ID:

发票激活?: 正确%>

电邮:

发票上的苍蝇 #这是我想添加“将产品添加到发票”功能的地方 :invoices,:action=>:activate,:id=>@invoices.id},{:method=>:post}%> :invoices,:action=>:deactivate,:id=>@invoices.id},{:method=>:post}%>


有两个很好的宝石: