レールは続く】 Ruby on Rails Part21 【これからも
Railsのダメダメなところは
便利だからとgemを使うと大抵依存関係で泣くことになる
例えばとあるgemが最新APIへの対応に伴いRubyのバージョンアップが必須となった場合
ほかのgemが置いてけぼりとなって新しいRubyでは動かなかったり想定していないエラーやバグに悩まされる
この問題から解放されたい bundlerを使うと魔法のように
全てのバグが消え去るのです >>5
gemを使うといつもバグに悩まされるのです
どっちもどっちやん
極論同士 >>5
詳しく
普通のbundle installだよね?
使ってるけどめちゃめちゃエラーが出る >>8
source 'https://rubygems.org'
gem 'rails', '3.2.11'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'mysql2'
gem 'execjs'
gem 'therubyracer'
gem 'devise', '2.0.1'
gem 'recaptcha', :require => 'recaptcha/rails'
#gem "recaptcha", github: "ambethia/recaptcha"
gem 'paperclip', "3.4.0"
gem "cocaine", '0.4.2'
gem 'mailboxer', '0.7.0'
gem 'sunspot_rails'
gem 'sunspot_solr'
#group :development do
# gem 'better_errors'
# gem 'binding_of_caller'
gem 'rack-mini-profiler'
gem 'bullet'
#end
gem 'progress_bar'
gem 'kaminari', '0.14.0'
gem "sunspot_with_kaminari", '~> 0.1'
gem 'i18n_generators'
gem 'ancestry'
gem 'acts-as-taggable-on', '2.4.0' つづき
gem 'acts_as_commentable_with_threading'
gem 'twitter-bootstrap-rails'
gem "less-rails"
gem 'crummy', '~> 1.6.0'
gem 'rails3_acts_as_paranoid'
gem 'galetahub-simple_captcha', :require => 'simple_captcha'
gem "acts_as_follower"
gem "jpmobile"
gem "rqrcode-rails3"
gem 'acts_as_votable', '~> 0.4.0'
gem 'rails3-jquery-autocomplete'
gem "cancan"
gem 'rinku', '1.5.1'
gem 'dalli'
gem "auto_html", '1.6.0'
gem "rails_autolink"
gem "unicorn" つづき
gem 'kgio', '2.8.0'
gem 'raindrops', '0.11.0'
gem 'omniauth-twitter'
gem 'figaro'
gem 'twitter'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
gem 'jquery-ui-rails'
end
gem 'jquery-rails'
gem 'newrelic_rpm'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger' > gem 'rails', '3.2.11'
ちょいまて、いつのRailsを使ってるんだ? >gem 'rails', '3.2.11'
いくら何でも、書店には、4 以上の本しか売っていない! そんなこと言われても
4年前に作ったプロジェクトを焼き直そうとしてる 他のgemうんぬんより、まずはRailsを上げないとどうしようもないよ、それ >>16
railsあげたらエラーが出なくなりますか?
railsあげたら上げたで動かなくなるgemが出てくるだろうからなぁ バージョン追従できないならrails使ったらだめだろ MVCのビューとデータベースのビューは別物
という基本 Redmine構築しようとしたらなんかうまく行かなくて結局Bitnami使ったんだが普通に構築するのダルすぎない? ホスティングサービスの方がだいたい優秀で結局、低コストになる気もする >>23
Docker使えば苦労しないなんて幻想
Dockerは自分で開発したアプリをデプロイするときに使うべきものだよ
誰かが作ったウェブアプリは(ウェブアプリの公式以外が)Docker化するのは大変
Docker化している人はたくさんいるが、実用レベルになっているかというとそうとは言い切れない
Docker公式を含め中途半端なものがたくさんある
結局、自分でDockerfileを読み解いて修正する必要がある。この方法のノウハウが世の中にない
ホスティングサービスが一番お手軽(だけど制限がある場合が多い)
次にウェブアプリ公式が自分が使用するディストロ用に配布しているパッケージ
最後にディストロ標準パッケージ
簡単に使えるのはこの順番で、これ以外はどれもダルい >>25
Dockerの一般論はどうでもいいよ
Redmineに関してはDocker使えばあっという間に終わるという話だから Docker公式Redmineということでいいかね? Docker公式のRedmine用Dockerイメージという意味 初学者だけど適当に弄るためのサンドボックス環境欲しいんだが
python venvで一瞬で作れるような感じの、ローカルでつかうシンプル仮想環境ってある?
なんかネットで探してもクラウドでやれとか直置きしろとか言われるんだけど >>33
初心者に学ばれて仕事を取られたくない
どっか行け >>33
初学者でも、5chに頼ろうとしているところが、
初学に向いていない学び場だということに気づくべき。
最低100万円ぐらい払って、しかるべきエンジニアの下で学んでください。 チュートリアルやったら相当なレベルになれるってマジなん? >>40
ただし全てを理解して使いこなせるようになったら チュートリアルってこれ?
https://www.railstutorial.org/
これ定番なんだ
>>1のテンプレに入れといてほしい Rails チュートリアルは、半年ぐらい掛けてやるけど、初心者はたいてい挫折する
まず、Sinatra をいじくりまわすべき >>44
そんな難しいんだ
チュートリアルって普通は入門用じゃないんか Progateは次に移行する時の挫折率が高まるからオススメしない 結局第一に作りたい物か技術的興味のどちらかがあって、
いきなり作り出せる人間だけができるようになる
まずは勉強だという思考が全ての間違いで、
こうなると情報商材よろしく役に立たないものに金を取られるだけの存在に成り果てる >>44
mzd?!
最近チュートリアル始めた初心者なのだけれど。
確かに、一通りなめれそうだけど、触っててWEBやバージョン管理がよく分からない YouTube にも、そういう動画がある
文系の非プログラマーから、Rails に転向した人が、
Rails は難しいから、Sinatra から始めたら、できるようになったって言ってた 今からオワコンまっしぐらのRubyはやらないほうがよいと伝えてやれ でもrailsに関しては今のrailsのポジションにピッタリはまるリプレイス製品がないからまだまだ安泰。
javaでキッチリカッチリ金と時間かけて作るほど大規模・ミッションクリティカルでもなく、
sinatraやexpressのような簡易フレームワークほどオモチャでもない。
この間にある幅広いユースケースに対応できるrailsはおいそれと滅びはしない。
djangoなんか同じとこ狙ってるのか知らんが全然出来が違う。
バッテリーとして付属する言語がクソとか些細な問題。
rubyもrailsある限りrailsのバッテリーとして生き続けられるだろう。
主従を間違えてはいけない。
railsが主、rubyは従。 掌田津耶乃の5冊の本
Spring Framework 4 プログラミング入門、2014
Spring Boot プログラミング入門、2016
Node.js超入門、2017
PHPフレームワーク Laravel入門、2017
Python Django 超入門、2018
他に、Nuxt.js, Vue.js, Electron, React なども、すべて読んだけど、
テスト・保守も含めると、やっぱり、Ruby が簡単で高品質! rubyはクソだけどrailsは凄いと思う。
そうじゃないってんなら代わりが務まるフレームワーク教えてほしい。わりとマジで。
あ、djangoとかいうギャグはいいんで。 Railsはほんとにレールにそって書くのはいいけど少しでも違うことしようとすると途端に大変になる class User < ApplicationRecord
has_many :items
belongs_to :category
end
class Item < ApplicationRecord
belongs_to :user
end
class Category < ApplicationRecord
has_many :users
end
こんなモデルがあったとして、
Categoryのidが1かつitemsを1つでも持っているUserを検索したい
Rails5だとどうやってできる? 子レコードの数を条件に親レコードを抽出する
http://o.inchiki.jp/obbr/274
子を、1つ以上持つ親
Parent.where(id: Children.select(:parent_id).
group(:parent_id).having("count(parent_id) >= ?", 1) ); >>63
あり
質問しといてなんだけどいろいろやってたらjoinsでできたので実装はこうした
joins(:items).joins(:category).where(category_id: query[:category_id]) Rails でエラーの場所とエラー内容が違うことがたまにあって
本当にエラーが起きてる場所ってどうやったらわかりますか?
いちばん簡単に再現できるのは save よんだときに
モデルの中のコードがエラーはいてもエラー箇所は save の行に表示される
Time.use_zone(current_user.timezone) do
yield
end
みたいなことをやると yield 内でおきたエラーがこのメソッドに表示されたり DB エラーなら、ログファイルなどに、エラーが吐かれていないの? DBエラーなら default がないとか接続されてないとか
エラー箇所が違っててもめっせーじからすいそくできるんですが
wrong number of arguments あたりがでるとどこが悪いのか調べようがないんですよね… RubyOnRailsを勉強しています。
ある画像<img>にLink_toメソッドでリンクを張ろうとしています。
<%= link_to("/posts/#{@post.id}/edit") do %><img id="edit" src="/invisible_px.png"><% end %>
<%= link_to("/posts/#{@post.id}/destroy",{method: "post"}) do %><img id="delete" src="/invisible_px.png"><% end %>
どちらともWinPC のClomeブラウザからのリンクは通りますが、
下のリンクは、Android Clomeブラウザではリンクが通りません。
postメソッド かつ <img>タグ からのリンクが理由だと思われますが
Android端末で、他にリンクが解決する方法などありますでしょうか? 久しぶりにRailsInstallerで手元のWindowsに入れて
Rails new hogeしたら
sqlite3のgemでエラーが出て
まともにアプリ作成にすら入ることが出来ない
しかもこれは直すことができないほど致命的
つまりRailsでsqliteを使うのは諦めろってこと
こんなかんじでRailsって依存関係の強いファイル同士が多数あってすぐに使えなくなって陳腐化するのが難点 >71
Ruby 2.5以降のRubyInstaller2でsqlite3ビルドする方法くらい少しググれば出てくるだろ
その程度のことができないなら、WSL使った方がネイティブライブラリでハマらなくて楽だろ
Linuxの使い方がわからんというなら…まあ、諦めろ >>72
出てきても解決方法が一つもない件
よく読んだ?検索結果しか見てないだろお前 >>72
自分でビルドして使った上で言ってるんだよ無能
でも、そんな風に煽ってもやり方は教えてやらんぞw WEB+DB vol.111
詳解 Rails 6
コミッターが解説する、26ページ分の特集! Ruby on Rails 6 (Ruby 2.5 以上)では、GitHub 中心で、
複数データベース(レプリカ)接続の大規模サービスと、
テストの並列実行など、別次元へ行ってしまった!
モジュールバンドラーも、Webpack になりました!
Coffee Script は、無くなった
メール送受信の機能と、
ブラウザの入力フォームが、ドラッグ&ドロップで、ファイルも受け付けるようになった 6.0.0はいつ正式リリースされるんだよ
GitHubのマイルストーンはイシューが減ったと思ったら
数日後また増えてて無限に終わんないじゃん coffee script がなくなったのは、ちょっと残念だ。
typescript で許しといたるわ。 今更やがRailsクッソおもしれー
誰でも簡単にこれでチャットアプリとかWeb アプリつくれるやん
Fラン卒の文系俺でも楽勝なんだがw もう誰もRailsなんかで開発始めてない
せいぜい古いRailsの刷新くらい GitHub, Facebook, Vagrant, Chef, Homebrew も、Ruby だろ。
それに、アマゾン、Google, Heroku でも採用されているし
ビジネスチャンスでは、他の言語よりも、数年速い。
だから、Harvard 大学でも教えている。
起業家になるなら、Rails で、小さく素早く始めろ!
今世紀最大の起業家、Vagrant の作者、Mitchell Hashimoto(hashicorp)は、Go へ行ったけどw
Rails をやれば、ついでに、そのコピーである、CakePHP も出来るようになる >Rails をやれば、ついでに、そのコピーである、CakePHP も出来るようになる
なんでゴミとゴミを勧めるかなぁ…。 質問質問
Rails6でAction Textが使えるようになったけど、バンドルされてるTrixが気に入らない
Action Textの恩恵に与りながら他のエディタを使うことはできる? Railsってメモリ管理がクソでどんどん積み上がって解放されないのはどうにもならんのかね >>89
実際Railsで運用はじめたらメモリ解放されなくて調べたら仕様だった なんでもいいから、再現方法書けと
ほんと嘘つきは、逃げてばっかりだな 養成読本シリーズのムック本が出た!
Software Design plusシリーズ
Ruby on Rails 6 エンジニア養成読本、2019/10/26
著者は、すがわらまさのり,前島真一 Railsチュートリアルのアプリを改変したものをGitHub経由でHerokuにpushしようとしているのですが、うまくいきません。
エラー
remote: rake aborted!
remote: Sass::SyntaxError: Invalid CSS after "": expected selector or at-rule, was "/*"
remote: (sass):1
remote: /tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/scss/parser.rb:1308:in `expected'
(似たような行がたくさん)
remote: ! Precompiling assets failed.
Herokuアカウントでアプリは作成済。HerokuアプリとGitHubレポジトリ連携済
gemfile、sqlite3は「group :development, :test do」に、pg(PostgreSQL)は「group :production do」に
以上について、git push heroku masterの前に変更を反映すべくgit add、git commit、git push済
よろしくお願いします Herokuに割り振られたurlにアクセス、またはheroku openを叩くと
「Heroku | Welcome to your new app!」ページが開きます SyntaxError・構文エラーだから、SASS の書き方がおかしいのだろう >>95
それが、どこが間違ってるか全然わかりません
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/scss/parser.rb:1308:in `expected'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/scss/parser.rb:1238:in `expected'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/scss/parser.rb:42:in `parse'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/engine.rb:414:in `_to_tree'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/engine.rb:290:in `render'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sprockets-3.7.2/lib/sprockets/sass_compressor.rb:48:in `call'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sprockets-3.7.2/lib/sprockets/sass_compressor.rb:28:in `call'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:75:in `call_processor'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `call_processors'
/tmp/build_ /vendor/bundle/ruby/2.5.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:134:in `load_from_unloaded' SASS を、SassMeister に貼り付けて、エラーになるかどうか、やってみれば?
https://www.sassmeister.com/
SASS/CSS は、見た目に関係するだけだから、エラーが出るなら、すべて削除すれば?
後で、SASS/CSSを勉強してから、書いていけば良い >>93
ここに構文エラーって、書いてある。
>remote: Sass::SyntaxError: Invalid CSS after "": expected selector or at-rule, was "/*"
わからなかったら、バックアップを取っておいてから、SASS/CSS をすべて削除してみれば?
それか、別のプロジェクトを作って、何も修正せずに、ビルド・デプロイしてみれば?
それで失敗するなら、環境構築がおかしい >>97 >>98
ありがとうございます
SyntaxErrorが文法のエラーなのは知っていたのですが、どこがどう間違っているのか全く見当がつかず
scssファイルを削除し、ローカル環境でアプリを問題なく動くのを確認してから再度アップを試みました
しかし結果は変わらず
本件の解決は諦め、次回はスクラッチでアプリを作り、herokuにアップしようと思います HTML, SASS/CSS, JavaScript, Node.js, jQuery なども、勉強するしかない