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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

2回答

2146閲覧

ruby on rails UI上で編集したjsonをデータベースに保存する

yuchuls

総合スコア10

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2017/05/17 09:14

編集2017/05/17 09:19

##環境
OS X El Capitan
ruby 2.2.3p173
Bundler version 1.14.3
mysql

作業者

フロントエンドエンジニアです。
現在、自社サービスをruby on railsで構築しており、新たなワイヤーフレームを作成するにあたりデータ構造を把握したく、その一環でrailsのアプリケーションの構造を学んでいます。

行いたいこと

行いたいこととしては、データベース上のデータをview上でjson形式に変換し、それをjsでいじり、そのデータをまたDB上に更新して戻すという動きです。

できないこと

行いたいこととしては、データベース上のデータをview上でjson形式に変換し、それをjsでいじり

ここまでは行えましたが、view上で編集したjsonをまたコントローラーを通じてDBを更新するということが行えません。
原因としては、単にrailsの知見が浅いというところです。

構築の流れとソースコード

構築の流れ

rails new [PROJECT]

cd [PROJECT]

bundle exec rails generate controller [VIEW] [INDEX]

bundle exec rails generate model [MODEL]

cd db/migrate

vi ~~~.rb
t.string: ~

rake db:migrate

vi seeds.rb

[MODEL].create(:name => 'あああ',:color => 'いいい')

rake db:seed

bundle exec rails dbconsole

select * from [MODEL];

ソースコード

$vi コントローラー

class [INDEX]Controller < ApplicationController
def index
@[MODEL] = [MODEL].all
end
end

======================
$vi [INDEX]

<script> var books = <%= raw @[MODEL].to_json %>; console.log([MODEL]); </script>

想定

イメージとしては
<%= raw @[MODEL].to_json %>;
これで取れるjsonをまた編集してDBに戻せればいいなという感じです。

注意

できれば余計なものなどを突っ込んで解決というようなことはしたくなく、できるだけピュアに書きたいです。(内容理解が目的のため)

最後に

わからない部分などあれば質問頂ければと思います。
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

自己解決

個人的な友人から教わり、

  1. /config/routes.rbのルーティングの設定
  2. /app/models/xxx.rbのモデルの設定
  3. /app/controllers/xxx_controller.rbのコントローラの設定

以上の3つの理解がそもそもできていないということがわかりました。

解決方法としてはscaffoldコマンドを用いて一度モデル・ビュー・コントローラを生成し、そのソースコードを読み解きました。

もっとも理解していなかったのはコントローラーでした・・・。

とはいえまだ厳密に解説できるわけではないのですが、取り急ぎやりたかったことができたので満足です。

今からreactをのっけて実装してみます!
回答者のみなさんありがとうございました。

投稿2017/05/18 03:54

yuchuls

総合スコア10

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

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

0

ここまできているとmodels/updateにAjaxで飛ばせば?
としかアドバイスできません。
それはもはやRails?なので、知らなければ、Ajaxとかでググってください。

Ruby on Railsのモットーは
読んで字のごとくレールに乗ることです。(設定より規約)
それによってDRY(同じことを繰り返さない)が実現されます
(現在yuchuls様は乗る気がないのがひしひと感じられます。)
また、Rubyの売りの一つはその拡張性の高さです。

もしRuby on Railsを学習するのが主目的でしたら
バックエンドをRD(リレーショナルデータベース)で設計して作ってみるのも面白いかもしれません。

もし独自のwireframe作るのが主目的ならばgithubで先人が作ったものを調べお礼をいって拝借し
(例えばdubistdu/wireframe)その拡張性の高さを生かし、それをベースに作り込んでいくのがいいと思います。

質問者様の意図とは違うかと思いますが個人的には
Railsの内容理解の第一歩はその哲学だと思います。

投稿2017/05/18 02:47

moke

総合スコア2241

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問