像创建、更新这样的方法在控制台上工作但不在视图中工作,更新现在工作但是一个新问题

问题描述 投票:0回答:0

我在控制器中添加了 protect_from_forgery,现在我可以创建、更新用户,但是创建方法中的 PUTS 语句或 format.html 或 format.json 根本不起作用 我是 Ruby 的初学者,我正在关注玩具应用程序的 Michael Hartl 教程, 创建用户的方法在控制台上运行良好,但在网络应用程序上运行良好,我发送了两个参数(姓名和电子邮件)

告诉我任何解决方案

我是一个完全的初学者

class UsersController < ApplicationController
  before_action :set_user, only: %i[ show edit update destroy ]

  # GET /users or /users.json
  def index
    @users = User.all
    # just atry
    # @user = User.find(params[:id])
  end

  # GET /users/1 or /users/1.json
  def show
    set_user
  end

  # GET /users/new
  def new
    @user = User.new
  end

  # GET /users/1/edit
  def edit
  end

  # POST /users or /users.json
  def create
    puts "Jaan se guzarte"
    @user = User.new(user_params)
    respond_to do |format|
      if @user.save
        format.html { redirect_to user_url(@user), notice: "User was successfully created." }
        format.json { render :show, status: :created, location: @user }
      else
        format.html { render :new, status: :unprocessable_entity }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /users/1 or /users/1.json
  def update
    respond_to do |format|
      if @user.update(user_params)
        format.html { redirect_to user_url(@user), notice: 
    "User was successfully updated." }
        format.json { render :show, status: :ok, location: 
    @user }
      else
        format.html { render :edit, status: :unprocessable_entity }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /users/1 or /users/1.json
  def destroy
    @user.destroy

    respond_to do |format|
      format.html { redirect_to users_url, notice: "User was 
    successfully destroyed." }
      format.json { head :no_content }
    end
  end


  # Use callbacks to share common setup or constraints between actions.
  def set_user
    @user = User.find(params[:id])
  end

  # Only allow a list of trusted parameters through.
  def user_params
    params.require(:user).permit(:name, :email)
  end
end

这是表格代码:

<%= form_with(model: user) do |form| %>
  <% if user.errors.any? %>
    <div style="color: red">
      <h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2>
      <ul>
        <% user.errors.each do |error| %>
          <li><%= error.full_message %></li>
        <% end %>
      </ul>
    </div>
  <% end %>

  <div>
    <%= form.label :name, style: "display: block" %>
    <%= form.text_field :name %>
  </div>

  <div>
    <%= form.label :email, style: "display: block" %>
    <%= form.text_field :email %>
  </div>

  <div>
    <%= form.submit %>
  </div>
<% end %>
ruby-on-rails ruby web railstutorial.org ruby-on-rails-7
© www.soinside.com 2019 - 2024. All rights reserved.