質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.58%

paramsの値が取得できない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 493

hiromats

score 17

rubyの機能の実装を行なっています。
コントローラから別テーブルにあるimageのparamsを取得したいのですが、何故か上手く行きません。
attributesメソッドを使って試してはいるのですが、取得できない状態です。
まだまだ若輩者ですが、ご教授いただければ幸いです。
よろしくお願いします。

DBのアソシエーションは組んでおり、imageのモデルにmount_uploader :image, ImageUploaderを記入済みです。

  <div class="sell-dropbox-container clearfix">
    <div class="sell-upload-items have-item", id="items">
      <ul id="item">
        <li class="sell-upload-item">
          <%= form_for @item do |f| %>
            <div class="sell-upload-item-1">
             <%= f.fields_for :item_images do |image| %>
                <figure class="sell-upload-figure figure-1">
                   <img>
                   <input type="file" class="sell-upload-drop-file" multiple="multiple" name="image" style="display: none">
                    <pre class="visible-pc-1">ドラッグアンド<br>ドロップ<br>またはクリックして<br>ファイルを<br>アップロード</pre>
                     <%= image.file_field :image, :multiple => true %>
               </figure>
             <% end %>
          </div>
        <% end %>        
      </li>
    </ul>
  </div>
 </div>
class ItemsController < ApplicationController

  def index
  end

  def new
    @item = Item.new
    @item.item_images.build
  end

  def show
  end

  def create
    @item = Item.new(item_params)
    binding.pry
  end

  def purchase
  end

  def purchased
  end

  private

  def item_params
    params.require(:item).permit(
      :name,
      :introduction,
      :price,
      item_images_attributes: :image
      )
  end

end
$(function(){
  $(document).on("change", ".figure-1", function(e){
    var file = e.target.files[0];
    if (file === undefined){
      return ;
    }
    $(".visible-pc-1").text("");
    $(".figure-1").children("input").remove();
    var html = buildIMAGE1()
    $(".sell-upload-item-1").append(html)
    var reader = new FileReader();
    var IdentifiedImg = $(this).children("img");

    reader.onload = (function(file){
      return function(e){
        IdentifiedImg.attr("src", e.target.result);
        IdentifiedImg.attr("title", file.name);
      };
    }) (file);
    reader.readAsDataURL(file);
  });
});
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • phpsyoshinsya

    2018/11/21 04:10

    エラーメッセージの有無とエラーメッセージの内容かつ該当エラー行を明示してください。

    キャンセル

  • hiromats

    2018/11/21 06:49

    すみません、自己解決しました。あと、エラーメッセージはありませんでした。

    キャンセル

回答 2

check解決した方法

+1

自己解決しました。
image_uploaderを使用する際、外部テーブルのitem_imagesのモデル、item_image.rbにmount_uploader :image, ImageUploaderは打っていたのですが、主テーブルのitemsのモデル、item.rbにaccepts_nested_attributes_for :item_imagesを打つのを忘れていました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/21 06:56

    自己解決お疲れ様&おめでとうございます。

    よくコード打ち忘れに気づけましたね。

    俯瞰する能力が高いのでしょうね。私も頑張らなければ。

    キャンセル

0

質問者さん?

今回実装したい機能は
-ドロップボックスに画像をアップロードしたい
-既にユーザー名とパスワードでドロップボックスにログイン済みの実装予定

でよろしいでしょうか?

私の勘違いならご指摘ください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/21 09:02

    ドロップボックスに画像をプレビューし、submitボタンを押して別の場所でアップロードするですね。
    ユーザー名とパスワードは後に実装する予定です。

    キャンセル

  • 2018/11/21 09:06

    その中でプレビューが取得・表示できないということですか?

    キャンセル

  • 2018/11/21 09:36

    プレビュー自体の取得、表示は出来ています。
    このデータをsubmitしてDBに保存、別サイトでアップロードする予定です。

    キャンセル

  • 2018/11/21 09:42

    そんなことが可能なんですね。今回の質問は自己解決されていますが、とても興味深い質問でした。またお忙しいところ、フォローアップありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.58%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る