23595


Ruby on Railsで管理画面を作っています。  
その中でリストから選択したデータを参照するデータだけをExcelファイルで見れる機能を作ろうとしていますが、チェックされた値をどうやって渡せるのかがわからなくて詰まっているところです。  
下記は現在自分のコードでございます。

[code]

    table.table.table-bordered.table-striped
      thead
        tr
          th
          th #
          th 会社コード
      tbody
        - @companies.each do |company|
          tr
            td = check_box_tag 'company_ids[]', company.Id, id
            td.text-right = company.Id
            td = company.CompanyCode
            td.text-center = link_to '詳細', company
            td = link_to '修正', edit_company_path(company)
            td = link_to '削除', company, data: {:confirm => '本当に削除してもよろしいでしょうか？'}, :method => :delete
    
    
    = link_to 'Excelダウンロード', companies_path(format: 'xls')
    
[/code]

controller

[code]

    before_action :set_company, only: [:show, :edit, :update, :destroy]
    
    # GET /company
    def index
      @companies = Company.all
    
      @book = Book.where(CompanyId: params[:company_ids])
      respond_to do |format|
        format.html
        format.xls
      end
    end
    
    # GET /company/1
    def show
    end
    
    # GET /company/new
    def new
      @company = Company.new
    end
    
    # GET /company/1/edit
    def edit
    end
    
    (省略)
    
    private
    
    # Use callbacks to share common setup or constraints between actions.
    def set_company
      @company = Company.find(params[:id])
    end
    
    # Only allow a trusted parameter "white list" through.
    def company_params
      params.require(:company).permit(:CompanyCode)
    end
    
[/code]


CC BY-SA 3.0
2016-03-28T05:36:19.740
23533
2016-03-29T10:27:09.960
2016-03-29T07:59:56.423
10710
10710
question
ruby-on-rails
railsでcheck_box_tagの値を渡す方法


view 側に form_for あるいは form_tag が記述されていないのが気になりますが、  
とりあえず controller の Strong Parameter を以下のようにしてみてください。

[code]

    def company_params
      params.require(:company).permit(:company_ids => [])
    end
    
[/code]

そして def index の where は以下のように。

[code]

    @book = Book.where(company_id: company_params[:company_ids])
    
[/code]

form_for および form_tag については以下を参考にしてください。  
<http://qiita.com/shunsuke227ono/items/7accec12eef6d89b0aa9>


CC BY-SA 3.0
2016-03-29T10:27:09.960
23595
2016-03-29T10:27:09.960
14894
23533
answer