- 1. jQueryを使ってクリックする度に要素のテキストを切り替える方法
- 2. 【Ruby on Rails】SNS認証時に起こった「-bash: export: `=': not a valid identifier」のエラー解決をした話
- 3. 一発で理解できる ~Ruby,Railsについて~
- 4. Redirect URL ... Ruby / Python / golang / Nim
- 5. [Ruby] 分割するメソッド
- 6. rubyでgetsするときはSTDINがいらないのに、rakeタスクでgetsするときはSTDINが必要な理由
- 7. AWS SDK for Ruby のVersionを知りたい時
- 8. ActionController::UrlGenerationErrorに遭遇しました
- 9. Dockerfileやdocker-compose.ymlで悩まないruby on railsのDocker環境構築
- 10. [Ruby] Array#include?メソッド
- 11. 【JavaScript】画像投稿時のプレビュー機能
- 12. 【Rails】sequenceを使ってテストデータを作成する。
- 13. [Ruby] ハッシュ
- 14. 6章 アセンブラ
- 15. Railでの非同期通信(Ajax)を利用したいいね機能の実装
- 16. [Ruby] 配列のメソッド
- 17. [Ruby] all?メソッド
- 18. 【Ruby】保存されている複数画像のうち1枚だけ表示した場合について
- 19. railsチュートリアルでherokuへのpushができない
- 20. Windows10 で Ruby3 + pg gem を利用して postgreSQL にアクセスするとエラー `AddDllDirectory failed for x64-mingw32` になる
jQueryを使ってクリックする度に要素のテキストを切り替える方法
#今回の記事
①jQueryを使ってクリックする度に要素のテキストを切り替える方法をメモ
※自分の,そのままのコードを貼り付けているので、分かりづらいかもしれません。おまけ
② ①で切り替えると他の要素を変更させる方法
Railsにて、要素を変えたいが中身にインスタンス変数などがあり、ややこしいかも#環境
ruby 2.6#対象のコード
*①jQueryを使ってクリックする度に要素のテキストを切り替える方法*“`perl:HTML
“`
こちらは、期間の月を表してます。こちらをクリックするたび「Yearly、Day、Week」に変更していく。“`perl:application.html.erb
“`
jQueryを読み込みさせる。“`perl:jQuer
$('.fo
【Ruby on Rails】SNS認証時に起こった「-bash: export: `=': not a valid identifier」のエラー解決をした話
#対象者
* 環境変数を設定している方
* SNS認証を実装している方
#状況
SNS認証実装中、
環境変数設定時に下記のようなエラーがターミナル
````
-bash: export: `=': not a valid identifier
````#解決方法
環境変数設定時に
```
export 環境変数="変数名" ○
export 環境変数 = "変数名" ✕
```上記のように**環境変数と変数名の間に半角スペースを開けるとエラー**になってしまいます。
スペースを無くしたらエラーもなくなりました!
####投稿者コメント
初めて見たエラーだったので記事にしてみました。
学習内容だけでなく、自分が遭遇したエラーに関しても発信していきたいです。####My Profile
プログラミング学習歴3ヶ月目のアカウントです!
プログラミングスクールで学んだ内容や自分が躓いた箇所等のアウトプットの為に発信しています。
また、プログラミング初学者の方にわかりやすく、簡潔にまとめて情報共有できればと考えています。
もし、投稿した記事の中に誤り
一発で理解できる ~Ruby,Railsについて~
# Ruby概要
__日本人が作ったプログラミング言語__
* Rubyは、まつもとゆきひろ氏が開発したプログラミング言語です。日本で開発されたプログラミング言語
* Rubyは、非常にシンプルで書きやすいプログラミング言語であり、最初に学ぶプログラミング言語として最適__名前由来__
名前の由来はまつもとゆきひろ氏の好きなプログラミング言語であるPerlをモデルに開発したことからその名称には『Perl(パール)に続ぐ』という意味が込められており6月宝石であるPerlの次月(7月)宝石のRuby(ルビー)という名称になったようです。
# Rubyの特徴
__シンプル__
Rubyは、なんといっても記述のシンプルさが売りです!
可読性(読みやすさ)を重視しています。Javaと比較してみましょう!
Hello World”という文字を表示するプログラムを比較してみて下さい。```java:Java
public class Main {
public static void main(String[] args){
System.out.println("H
Redirect URL ... Ruby / Python / golang / Nim
##Ruby
```ruby
require 'net/http'
require 'uri'target_url ="http://idontknow.where.to.go/?redirect="
uri = URI.parse(target_url)
def get_url = Net::HTTP.get_response(uri)['location']
return redirect
endredirect_url = get_url(uri)
puts redirect_url
```----
##Python
```python
import requeststarget_url = "http://idontknow.where.to.go/?redirect="
res = requests.get(target_url)
redirect_url = res.urlPrint(redirect_url)
```----
##Golang```go
import (
"fmt"
"net/http"
[Ruby] 分割するメソッド
# メソッドを定義する
```rb
def area
puts 2 * 2
end
area #=> 4
```# 引数を使ってオブジェクトを渡せるメソッドを定義
```rb
def area(x)
puts x * x
end
# 引数2をメソッドに渡す
puts area(2) #=> 4# 2つ以上の引数をもつメソッドを定義
def area(x,y)
puts x * y
end
puts area(2, 3)
```# メソッドを途中で終わらせる
```rb
def area(x,y)
puts x * y
return
puts x
end
puts area(2, 3) #=> 6# returnするかどうか引数で切り替える
unless 引数 #引数がfalseのときに処理を実行
return
```# 引数を省略したときのデフォルト値
```rb
def order(item="コーヒー")
"#{item}をください"
end
puts order #=> コーヒーをください
```# 引数の順番を変えられるキ
rubyでgetsするときはSTDINがいらないのに、rakeタスクでgetsするときはSTDINが必要な理由
# はじめに
rakeタスクを初めて作っているときに、標準入力の文字を受け取りたいと思い、getsを実装したところエラーが発生しました。rubyではgetsでエラーが起きてなかったのになぜ?Rakefileでもrubyは扱えたんじゃないの?そんな疑問と格闘した結果です。# 動作環境
- macOS version 11.4
- ruby 2.4.9
- rake 13.0.3# 名前を読んでくれないrakeタスク君
このご時世、人と合う機会も減り、普段名前を呼ばれることがありません。せめてrakeタスク君からは名前を呼ばれたい、その一心で次のタスクを作成しました。
```ruby:Rakefile
desc 'ユーザ名を入力すると、3回呼びかけてくれるタスクです。'
task :call_three do
print 'input your name:'
input = gets.chomp
puts ((input + '!') * 3)
end
```
しかし、実行すると```
$ rake call_three
input your name:rake
AWS SDK for Ruby のVersionを知りたい時
例えば、インストール済のディレクトリで以下のような形で確認可能。
```ruby
# bundle exec irb
> require "aws-sdk-core"
> Aws::CORE_GEM_VERSION
=> "3.114.1"
```ドキュメントには記載が無かったので、将来的には使えなくなる可能性もある。
SDKコードの以下を元に確認。https://github.com/aws/aws-sdk-ruby/blob/6088447362144b02ddfd60f80c8df5bb6fd968a4/gems/aws-sdk-core/lib/aws-sdk-core.rb#L99
ActionController::UrlGenerationErrorに遭遇しました
オリジナルのアプリを製作中に始めて遭遇したエラーです。
今までは教材の通りにルーティングを組んで、パスもそれに会うように指定していました。
忘れないように記録しておきます。```
ActionController::UrlGenerationError
```
さて今回遭遇したエラーですが、読んだ感じ、Urlの作成でミスがあるんだと思いルーティングを確認してみました。エラーが出た場面ですが、ヘッダーからマイページに遷移するときでした。
なのでマイページのアクションを指定した箇所をチェック、、、```rb
resources :users, only: [:update, :mypage] do
member do
get 'mypage', :to => "users#mypage"
get 'mypage/edit', :to => "users#edit"
put 'mypage', :to => "users#update"
end
end
```resourcesとmemberで各アクションを行う際にid
Dockerfileやdocker-compose.ymlで悩まないruby on railsのDocker環境構築
Dockerfileやdocker-compose.ymlをよく知らないへっぽこエンジニアなので、
DockerHubのbitnamiのイメージを使って環境構築してみる。```
$ mkdir ~/myapp && cd ~/myapp
$ curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-rails/master/docker-compose.yml
$ docker-compose up
```
```
myapp_1 | => Booting Puma
myapp_1 | => Rails 6.1.4.1 application starting in development
myapp_1 | => Run `bin/rails server --help` for more startup options
myapp_1 | Puma starting in single mode...
myapp_1 | * Puma version: 5.4.0 (ru
[Ruby] Array#include?メソッド
##はじめに
今回はinclude?メソッドについて紹介します。同じincludeでも、Rubyの中ではいくつかのincludeがあるのですが、この記事では配列に対して使うinclude?を説明します。##Array#include?
配列に対して使用します。配列の中にある要素があるのかどうかを調べるためのメソッドです。その調べたい要素はinclude?に引数として渡します。
あったらtrue、なかったらfalseを返します。```ruby
array = [1, 2, 3, 4, 5]
array.include?(3)
=> truearray.include?(6)
=> false
````使用するオブジェクトが配列であれば調べたい要素のデータの型が数値だろうが文字列だろうが問題ありません。
```ruby
array = ["a", "b", "c", "d"]
array.include?("c")
=> truearray.include?("e")
=> false
```
【JavaScript】画像投稿時のプレビュー機能
画像複数投稿機能以上に詰まっていたプレビュー機能。
ようやく解決できたので備忘録のために投稿します。
jsの記述のルールや基礎的なところ抑えていかなければと思いました。下記解決後コード
2,14,15,30行目の記述に変更を加えています。```js
document.addEventListener('DOMContentLoaded', function() {
if (document.getElementById('store-image')){
const ImageList = document.getElementById('image-list')const createImageHTML = (blob) => {
const imageElement = document.createElement('div')
imageElement.setAttribute('class', "image-element")
let imageElementNum = document.querySel
【Rails】sequenceを使ってテストデータを作成する。
sequenceというものを使ってテストデータを作成すると、テストデータをいい感じに作ることができる。
```ruby
FactoryBot.define do
factory :user do
sequence(:name) { |n| "ごりら#{n}" }
end
end
```
このような形でspec/factories/user.rbに記述する。
そして、rails cでuserを作成してみる。```
irb(main):001:0> FactoryBot.create(:user)
(2.4ms) SET NAMES utf8mb4 COLLATE utf8mb4_bin, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
(2.3ms) BEGIN
Use
[Ruby] ハッシュ
# ハッシュの出力
```rb
p ({:coffee => 300, :coffee_latte => 400})
#=> {:coffee=>300, :coffee_latte=>400}# ハッシュの別の書き方(キーにシンボルを指定したときのみ)
p ({coffee: 300, coffee_latte: 400})
#=> {:coffee=>300, :coffee_latte=>400}
```# 変数に代入してハッシュに名前をつける
```rb
menu = {coffee: 300, coffee_latte: 400}
p menu #=> {:coffee=>300, :coffee_latte=>400}
```# ハッシュから値を取得する
```rb
menu = {coffee: 300, coffee_latte: 400}
p menu[:coffee] #=> 300
```# ハッシュへキーと値の組を追加する
```rb
menu = {coffee: 300, coffee_latte: 400}
menu[:mocha] = 4
6章 アセンブラ
# はじめに
これは、「コンピュータシステムの理論と実装」(以下「Nand2Tetris」という)の第6章 アセンブラのプロジェクトに対するレポートである。
Qiitaでは、画像の利用に制約があるため、フローチャートなど掲載することは省いている。
# プロジェクトに対するレポート
## 目標
* Hackコンピュータのアセンブラを作成する
* 1章から5章で作成したHackコンピュータを使い変換後の機械語を動作させる## 材料
* Nand2Tetrisで定義しているアセンブラのAPI(仕様)
* Ruby
* アセンブラ
* CPUエミュレータ
* ハードウェアエミュレータ## 実装
Nand2Tetrisのアセンブラは文字列の変換のため、スクリプト言語が適していると考え、Rubyにより作成することとする。### Parserモジュール
* Rubyのクラスにより実装する
* API仕様のルーチンは、メソッドにより実装する#### コンストラクタ/初期化
引数で入力されたファイルを開く。
コードの煩雑化を防ぐためファイルが存在しないときなどの例外処理は実
Railでの非同期通信(Ajax)を利用したいいね機能の実装
使用環境
Ruby2.6.8
Rails6.1.4#完成イメージ
![スクリーンショット (30).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1193085/f7c1a964-2e29-07b8-d881-1f4b353a6571.png)非同期通信を用いることで、上の画像の♡を押すと、ページの更新なしに「いいね」をつけたり、消したりすることができます。
##処理の流れを説明する前に・・・
####前提
railsでjQueryを読み込めるようにする必要があります。https://qiita.com/tatsuhiko-nakayama/items/b2f0c77e794ca8c9bd74
また、非同期通信でいいね機能を実装するためには、javascriptでHTML構造を書き換える必要があります。なので、それぞれの投稿を部分テンプレートで切り出す必要があります。
![スクリーンショット (30)_LI.jpg](https://qiita-image-store.s3.ap-
[Ruby] 配列のメソッド
# 配列の要素数を取得 size
```rb
# 要素の取得
puts [1,2,3].size #=> 3
```
# 配列の全要素の合計を得る sum
```rb
# 要素の合計の取得
puts [1,2,3].sum #=> 6# 平均値の計算
a = [1,2,3]
puts a.sum/ a.size #=> 2
```# 重複しているメソッドを取り除く uniq
```rb
# 重複する要素を取り除く
Array1 = [1,2,3,3]
Array2 = Array1.uniq
p Array1 #=> [1, 2, 3, 3]
p Array2 #=> [1, 2, 3]# uniq!で自分自身の配列オブジェクトを変更する
Array1 = [1,2,3,3]
Array2 = Array1.uniq!
p Array1 #=> [1, 2, 3]
p Array2 #=> [1, 2, 3]
```# 要素をランダムに取得 sample
```rb
# 配列をランダムに取得
puts [1,2,3].sample #=> 1or2or3(ラン
[Ruby] all?メソッド
##はじめに
all?というメソッドを見つけました。
私的には少し使い方が変わっていると感じました。とても便利なので記事で残しておきます。##all?メソッド
配列に対して使用します。(配列でなくてもいいのかも?)
all?の後に{}を用意し、その中にブロック変数と条件式を記述します。
ブロック変数にall?直前の配列の要素を一つずつ放り込み、その配列の全ての要素が条件式で~~true~~ 真だったときに初めてtrueを返します。一つでも~~false~~ 偽があるとfalseを返します。
```ruby
array = [1, 2, 3, 4, 5, 6]
array.all?{|x| x > 0 }
=> truearray = [0, 1, 2, 3, 4, 5, 6]
array.all?{|x| x > 0 }
=> false
```参考: https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/all=3f.html
【Ruby】保存されている複数画像のうち1枚だけ表示した場合について
現在作成中のアプリケーションにて、画像表示について表題のような挙動にしたかったのですが、解決まで時間がかかったので備忘録用に。
##状況
1つの店舗に対して複数の画像を投稿できる機能を追加しました。
トップページ、詳細ページどちらも投稿された画像が全て表示されています。
トップページでは店舗の外観画像のみ表示し、詳細ページでは店舗外観とその他画像が確認できるようにしたい。
以下解決前コード```rb
<% store.images.each do |image| %><% end %>
```
上記コードではstoreモデルが持っている画像を全件表示する、というコードになっていました。
削除後、下記コードに変更したところ解決しました。
とても単純でした。```rb
<%= link_to image_tag(
railsチュートリアルでherokuへのpushができない
# これは何
- ruby on railsのチュートリアルでherokuへアプリケーションをデプロイする場面があるのですが、以下のようなエラーで先に進めませんでした```
remote: -----> Installing dependencies using bundler 2.2.21
remote: Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
remote: Your bundle only supports platforms ["x86_64-darwin-19"] but your local platform
remote: is x86_64-linux. Add the current platform to the lockfile with `bundle lock
remote:
Windows10 で Ruby3 + pg gem を利用して postgreSQL にアクセスするとエラー `AddDllDirectory failed for x64-mingw32` になる
## 現象
`bundle exec rake db:migrate` したけどエラーが発生する
```
PS C:\app> bundle exec rake db:migrate
rake aborted!
RubyInstaller::Runtime::DllDirectory::WinApiError: AddDllDirectory failed for C:/app/vendor/bundle/ruby/3.0.0/gems/pg-1.2.3/lib/x64-mingw32
C:/app/vendor/bundle/ruby/3.0.0/gems/pg-1.2.3/lib/pg.rb:15:in `block in'
C:/app/vendor/bundle/ruby/3.0.0/gems/pg-1.2.3/lib/pg.rb:26:in `rescue in'
(略)LoadError: 126: 指定されたモジュールが見つかりません。 - C:/app/vendor/bundle/ruby/