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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

1262閲覧

render 機能がうまく反映されない haml使用

risarisa.373

総合スコア0

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/07/30 03:49

前提・実現したいこと

ユーザー登録していたら、グループのview画面に飛んで欲しいのですがエラーが出てしまいます。
ユーザー登録のsendボタン押してエラー

発生している問題・エラーメッセージ

「解決したいこと」
render 機能がうまく反映できません。
renderは違うフォルダでも反映させることは可能だと思うのですが、書き方の問題でしょうか??

こちらは、うまく通りました。。
= render ‘groups/new’

こちらが問題の記事時です

view/lauouts/application.html.haml

  • if user_signed_in?
    = render ‘groups/new’
    • else
      = render partial: ‘/registrations/new’, locals: { post: @user.name }
    = yield

呼び出したい、else以降のviewがdeviseの機能の箇所なので
こういった形で記述しております。
render もしくは、redirect_toを使うのかなと思ってまして
redirect_toはaction: ,controller:
それぞれ定義したりしてみましたが、ルーティングエラーになるのでrenderを使おうと決めました。
コードです。
routes.rb
Rails.application.routes.draw do
devise_for :users
root “groups#new”
resources :users, only: [:index, :new, :create, :destroy]
resources :groups, only: [:new, :create, :edit, :update] do
resources :contents do
resources :comments, only: :create
collection do
get ‘search’
end
end
end
end
application_controller.rb
class ApplicationController < ActionController::Base
before_action :authenticate_user!
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end
end
/users_controller.rb
class UsersController < ApplicationController
def index
return nil if params[:keyword] == “”
@users = User.where([‘name LIKE ?’, “%#{params[:keyword]}%“] ).where.not(id: current_user.id).limit(10)
end
def new
@user = User.new
end
def create
@users = @user
if current_user.Create.new(user_params)
redirect_to new_group_path
else
redirect_to new_user_registration_path
end
end
def show
user = User.find(params[:id])
@contents = user.contents
end
private
def user_params
params.require(:user).permit(:name, :email)
end
end

https://gyazo.com/aba25ae77ac04c8b02811f0d19f3ee22 エラーメッセージ

色んなコードを打ち込んでみましたが、ずっと同じコードなので
ファイル名なども確認してますが、何がおかしいのか分かりません。。
ご教授、よろしくお願いいたします。

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

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

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

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

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

gouf

2020/07/30 13:01

app/views 以下のファイル・ディレクトリ構造はどの様になっていますか? 質問欄に追記できますか? (Hint: 「tree」コマンドを使うと簡単に一覧が取得できます)
Cojiro

2020/08/01 08:21

今の質問だと読みづらいので、下記の点に注意して書き直していただけると読みやすくなり回答者も助かると思います。 ・テンプレートの項目通りに簡潔に書く ・リンクは, リンクのマークダウンを利用する ・ソースコードは、ファイルごとにソースコードのマークダウンを利用する
risarisa.373

2020/08/02 22:42

お返事ありがとうございます!! 原因は何軒かありました。 ファイル名の前に_(アンダーバー)がなかったこと そもそも、_のついたファイル単体では表示できない??←曖昧ですが。。 うまく、情報が渡せていなかった。 ⬆️controllerなどで定義してあげるとうまく渡せました!! 質問の記述方法、今後気をつけます。 ありがとうございます!!
guest

回答1

0

自己解決

原因は何軒かありました。

ファイル名の前に_(アンダーバー)がなかったこと
そもそも、_のついたファイル単体では表示できない??←曖昧ですが。。

うまく、情報が渡せていなかった。
⬆️controllerなどで定義してあげるとうまく渡せました!!

投稿2020/08/02 22:46

risarisa.373

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問