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

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

新規登録して質問してみよう
ただいま回答率
85.35%
web3.js

web3.jsは、Ethereumのノードとローカルの通信を可能にできるJavaScript APIです。HTTPやIPCを使って通信を行い、gethを毎回起動せずにブラウザからコントラクトを実行できます。

Q&A

解決済

1回答

212閲覧

ソースの解析をしていただきたいです。

biginer0000

総合スコア3

web3.js

web3.jsは、Ethereumのノードとローカルの通信を可能にできるJavaScript APIです。HTTPやIPCを使って通信を行い、gethを毎回起動せずにブラウザからコントラクトを実行できます。

0グッド

0クリップ

投稿2020/07/07 01:16

編集2020/07/17 06:51

可能な限りで大丈夫なので、どういった内容なのか解析していただけると助かります。。
(ほかに情報必要でしたら質問お願い致します。)

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/07/07 01:21

@argはどのような値でしょうか?
biginer0000

2020/07/07 01:29

ご質問ありがとうございます。会社情報です。 id、会社名、フリガナ・・・などが入っています。 質問の答えになっているでしょうか?
maisumakun

2020/07/07 01:35

では質問を変えます。@argの型は何ですか?
sazi

2020/07/07 01:41

ソース解析するにあたり、リファレンスには目を通されましたか?
m.ts10806

2020/07/07 02:34

解析が必要なソースコードはどこに提示されてるのでしょう
mingos

2020/07/07 02:36

> @arg[:obj].import(params[:file]) これだけでは第三者には分かりません。 ここが書かれているコントローラのアクション全体のコードを書かないと難しいのでは。
biginer0000

2020/07/07 02:37

属性はどこを見ればわかるのでしょうか。 初心者ですみません。。。
biginer0000

2020/07/07 02:38

saziさん チュートリアルのことですよね? チュートリアルは見ています。
mingos

2020/07/07 02:44

そうですね。 しかし、これを質問のほうにコードブロックで書いて欲しいです。 コメントではコードが見づらいので。 コードブロックとは、こういうものです。 ```ruby ここにコードを書く ``` 質問を修正して、以下をコピペで張り付けてください。 ```ruby def import if params[:file].blank? redirect_to @arg[:url], alert: '読み込むCSVを選択してください' elsif @arg[:obj].import(params[:fatal]) redirect_to @arg[:url], notice: 'CSVファイルをインポートできませんでした。' else @arg[:obj].import(params[:file]) redirect_to @arg[:url], notice: 'インポートが完了しました。' end end ``` teratailのテクニックとして、 コードブロックでコードを質問に書いておくと回答がもらいやすいです。 コードブロックで囲まずインデントもないコードを載せると、 回答者のモチベ―ションが下がり、回答ががつきにくいです。
sazi

2020/07/07 03:04

チュートリアルが何を指しているか分かりませんが、リファレンスとは、rubyの言語リファレンスの事です。 配列やクラス変数の事が分かった上での質問なのかそうでないのか判断付きません。
biginer0000

2020/07/07 04:26

mingoさん  詳しく教えていただきありがとうございます。。。 今後より意識して質問させていただきます。
guest

回答1

0

ベストアンサー

とりあえず、コードの一部を見せてもらえたので、ここから分かる事だけ書きます。
これでもまだ情報が不足してますが。

ruby

1def import 2 if params[:file].blank? 3 redirect_to @arg[:url], alert: '読み込むCSVを選択してください' 4 elsif @arg[:obj].import(params[:fatal]) 5 redirect_to @arg[:url], notice: 'CSVファイルをインポートできませんでした。' 6 else 7 @arg[:obj].import(params[:file]) 8 redirect_to @arg[:url], notice: 'インポートが完了しました。' 9 end 10end

@argは相変わらず不明のままでさっぱりです。
@argを設定しているコードを示さないと分かりません。

params[:file]はフォームの<input type="file" name="file">で指定したファイルです。
CSVファイルを処理しようとしているコードっぽいので、
フォームからアップロードしたCSVファイルの情報が入ってます。

@arg[:obj].import()と呼び出しているので、@arg[:obj]はどこかで定義しているクラスと思われます。
で、そのクラスに定義されているimportメソッドを呼び出してます。

分かるのはこのくらいです。

投稿2020/07/07 02:51

mingos

総合スコア4207

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

biginer0000

2020/07/17 02:35 編集

ご回答ありがとうございます。 定義とはこの文のことでしょうか?
biginer0000

2020/07/07 04:42

インデントがうまくできておらず、すみません
mingos

2020/07/07 04:45 編集

いや、どう考えてもその前です。 @arg[:obj].joins..っていきなり書いてもエラーになりますよね。 という事は、@arg[:obj] = xxxxって書いてある場所があるはずです。 もしくは、 @args = { obj: xxx } など。 このへんは、@argsの定義をどこでやってるか次第です。 ここまで書けば、後はソースを見れば分かると思います。 joinsってやってるから、モデル(app/models/*.rb)のどれかでしょう。
mingos

2020/07/07 05:14

> @arg[:obj] = xxxxという記載がありません。。 ソースの全容が分からないのでこちらでは一般的な話しかできません。 情報がまったく足りておらずこちらは推測でしか言えないので、 ただありませんと言われても困ってしまいます。 @arg[:obj] = xxxという記述がないなら、@argで探してみるとかそのへんは工夫して欲しいです。 > ちなみにモデル内のインポートメソッドはこのような記載になってます。 importメソッドがどこのモデルに書いてあるか分かってるんじゃないですか? だったら、@arg[:obj]は、そのモデルのクラスが代入されてます。 結局、コントローラーでは、そのモデルのimportメソッドにアップロードされたCSVファイルを渡していて、モデルのimportメソッド内で、CSVに書かれた内容をDBに登録しているという事でしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問