前提・実現したいこと
inputで入力データを送信するときname="カラム名"だと思うのですが、データがstringではなくtextの場合はどうすればよいのでしょうか?
発生している問題
class AddIntroToUsers < ActiveRecord::Migration[6.0] def change add_column :users, :intro, :text add_column :users, :school, :string add_column :users, :interest, :string add_column :users, :pr, :string add_column :users, :sns, :string end end
この場合最初のintro以外は表示させることができるのですがカラムタイプがtextのintroだけ表示させることができません。textをstringにさせたらできます。
class UsersController < ApplicationController before_action :ensure_correct_user, {only: [:edit, :update]} before_action :authenticate_user, {only: [:show, :index,:edit, :update]} def index @users =User.all end def create @user = User.new(name: params[:name], email: params[:email], password: params[:password],image_name: "default_user.jpg") if @user.save redirect_to("/users/#{@user.id}") session[:user_id]= @user.id else render("/users/new") end end def show @user = User.find_by(id: params[:id]) end def new @user = User.new end def edit @user = User.find_by(id: params[:id]) end def update @user = User.find_by(id: params[:id]) @user.name = params[:name] @user.email = params[:email] @user.intro = params[:intro] @user.school = params[:school] @user.jobs = params[:jobs] if params[:image] @user.image_name="#{@user.id}.jpg" image =params[:image] File.binwrite("public/user_images/#{@user.image_name}", image.read) end if @user.save redirect_to("/users/#{@user.id}") else render("users/edit") end end def login_form password = params[:password] end def login @user = User.find_by(email: params[:email], password: params[:password]) if @user session[:user_id]=@user.id flash[:notice]="ログインしました" redirect_to("/posts/index") else @error_message ="メールアドレスまたはパスワードが間違っています" @email = params[:email] @password = params[:password] render("users/login_form") end end def logout session[:user_id]= nil flash[:notice]="ログアウトしました" redirect_to ("/login") end def ensure_correct_user if @current_user.id != params[:id].to_i flash[:notice]="権限がありません" redirect_to("/users/index") end end private def user_params params.require(:user).permit(:image, :x, :y, :width, :height) end end
<div class="container"> <div class="profile-card"> <div class="profile-card__inner"> <div class="profile-thumb"> <img src="<%="/user_images/#{@user.image_name}" %>" class="user-image" alt="アイコン"> </div> <div class="profile-content"> <span class="profile-name"><%=@user.name%></span> <span class="profile-job"><%=@user.email %></span> <span class="profile-job"><%=@user.school %></span> <span class="job-intro"><%=@user.jobs%></span> <span class="profile-intro"><%=@user.intro %></span> <%=link_to("編集する","/users/#{@user.id}/edit") %> </div> </div> <div class="profile-sns"> <span>FOLLOW ME</span> <a href="#"><i class="fab fa-twitter-square"></i></a> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fas fa-envelope-square"></i></a> </div> </div> </div>
<div class="container"> <%=form_tag("/users/#{@user.id}/update",{multipart: true}) do%> <div class="form"> <h1>編集する</h1> <div class="form-input"> <label for="frame">Your Name</label> <input id="frame" name="name" class="Full_name" type="text" value="<%=@user.name %>"> </div> <div class="form-input"> <label for="erame">Email</label> <input id="erame" class="email" name="email" type="email" value="<%=@user.email %>"> </div> <div class="form-input"> <label for="s-rame">学校</label> <input id="s-rame" class="school" name="school" type="text" value="<%=@user.school %>"> </div> <div class="form-input"> <label for="j-rame">職業経歴</label> <textarea id="j-rame" class="jobs" name="jobs" type="text" ><%=@user.jobs %></textarea> </div> <div class="form-input"> <label for="in-rame">自己紹介</label> <textarea id="in-rame" class="intro" name="intro" type="text"><%=@user.intro %></textarea> </div> <div class="form-input"> <label for="prame">Your Photo</label> <input id="prame" class= "photo" name="image" type="file" value="<%=@user.image_name %>"> </div> <input type="submit" value="保存"> </div> <% end %> </div>
あなたの回答
tips
プレビュー