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

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

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

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

Q&A

0回答

248閲覧

formの作り方について

kai20000803

総合スコア29

Ruby on Rails

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

0グッド

0クリップ

投稿2020/08/01 07:13

編集2020/08/02 06:07

参考にしたコード

class ToppagesController < ApplicationController def index if logged_in? @micropost = current_user.microposts.build # form_with 用 @microposts = current_user.microposts.order(id: :desc).page(params[:page]) end end end
@micropost = current_user.microposts.build # form_with 用

ここについて質問です。
まずこの方法は

belongs_to :user の関連付けによって、Micropost のインスタンスでインスタンスメソッド user が使えるようになります。

使用例:micropost.user

このuserメソッドで、ある投稿に紐付いた User のインスタンスを取得することができます。
同様に、 User に設定した has_many :microposts の関連付けによって、User のインスタンスでインスタンスメソッド microposts が使えるようになります。

とあるように多数 対 多数 の関係のための手順をしないと使えません。
そもそも僕のアプリ作っているアプリは誰の投稿かを特定しないのでこれは使用しないつもりです。

しかしこの形はnew.html.erbを使わなくて良いので(僕はindexで入力してindexに表示させようと思っています。)この形を使っていました。

まとめるとnew.html.erbを使わない形でindexからindexに埋め込むやり方を教えてください。
回答待ってます。

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

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

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

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

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

maisumakun

2020/08/01 07:21

作りたいフォームは、「新規登録用」のものということで間違いないですか?
kai20000803

2020/08/01 14:52

いや、新規投稿用です。
kai20000803

2020/08/01 14:54

今は自分の行動記録とタスクを投稿して保存させようとしています。
kai20000803

2020/08/01 14:55

新規投稿用です。 行動記録とタスクを入力して保存する機能をつけようとしています。
maisumakun

2020/08/01 22:48

・現状ではどのような問題がありますか? ・indexのビューの方はどのように書いていますか?
kai20000803

2020/08/02 04:45

エラー内容 NoMethodError in TimesController#index undefined method `logged_in?' for #<TimesController:0x00007f5994261f98> Did you mean? logger Extracted source (around line #8): 6 7 8 9 10 11 def require_user_logged_in unless logged_in? redirect_to login_url end end Rails.root: /home/ec2-user/environment/lifemanagements Application Trace | Framework Trace | Full Trace app/controllers/application_controller.rb:8:in `require_user_logged_in' Request Parameters: None Toggle session dump Toggle env dump Response Headers: None これはtimeのエラーです。taskも同じエラーが出ています。 indexのview <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-arrow-left-circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/> <path fill-rule="evenodd" d="M8.354 11.354a.5.5 0 0 0 0-.708L5.707 8l2.647-2.646a.5.5 0 1 0-.708-.708l-3 3a.5.5 0 0 0 0 .708l3 3a.5.5 0 0 0 .708 0z"/> <path fill-rule="evenodd" d="M11.5 8a.5.5 0 0 0-.5-.5H6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 .5-.5z"/> </svg> <div class="row"> <aside class="col-sm-6"> <%= form_with(model: @time, local: true) do |f| %> <div class="form-group"> <%= f.text_area :content, class: "form-control", rows: 2 %> </div> <%= f.submit "達成", class: "btn btn-primary btn-block" %> <%= f.submit "達成ストップ", class: "btn btn-primary btn-block" %> <% end %> <h3>達成時間</h3> <ul> <% @times.each do |time| %> <li><%= time.content %></li> <% end %> </ul> </aside> <div class="col-sm-6"> <%= form_with(model: @timehelper, local: true) do |f| %> <div class="form-group"> <%= f.text_area :content, class: "form-control", rows: 2 %> </div> <%= f.submit "娯楽", class: "btn btn-primary btn-block" %> <%= f.submit "娯楽ストップ", class: "btn btn-primary btn-block" %> <% end %> <h3>娯楽時間</h3> <ul> <% @timehelpers.each do |timehelper| %> <li><%= timehelper.content %></li> <% end %> </ul> </div> </div> <div class="center jumbotron"> <div class="text-center"> <h1>Welcome to the Microposts</h1> <%= link_to 'Sign up now!', signup_path, class: 'btn btn-lg btn-primary' %> </div> </div>
kai20000803

2020/08/02 04:52

僕はindexに一つのformと複数のボタンをつけてindexにそのまま表示したいです、今は質問の時にコードを貼ったような感じで多対多の時に使えるnew.html が必要ないformを使ってindexにかえすためにcontrollerをtimes_controllerだけでなく、timehelper_controllerも追加して、一つのformと二つのボタンを作っていたのですが、一つのcontrollerで複数のボタンをつけられるコードを調べたのですが、いい記事がな買ったので一つのformと複数のボタンを一つのcontrollerで表示することができる方法を教えてください!
Yasumichi

2020/08/07 09:39

NoMethodError in TimesController#index undefined method `logged_in?' とのことで logged_in? というメソッドが定義されていないと認識されています。 認証機構は、どのように作成されましたか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問