簡體   English   中英

Ruby on Rails 中缺少參數

[英]Missing Parameters in Ruby on Rails

賣家資料有一位賣家。 我正在嘗試發布賣家資料詳細信息並將賣家 ID 分配給 current_seller。 但是,我遇到了這個錯誤。 我不明白為什么錯誤說缺少參數,因為似乎已經提供了所有需要的參數。

錯誤是get is ActionController::ParameterMissing(參數丟失或值為空:seller_profiles

def create
    @seller_profile = SellerProfile.new(seller_profile_params)
    @seller_profile.seller = current_seller

    respond_to do |format|
      if @seller_profile.save
        format.html { redirect_to root_path, notice: 'Seller profile was successfully created.' }
 
def seller_profile_params
      params.require(:seller_profile).permit(:first_name, :other_name, :last_name, :email)
    end
<%= form_tag seller_seller_profiles_path do |form| %>
  <% if seller_profile.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(seller_profile.errors.count, "error") %> prohibited this seller_profile from being saved:</h2>

      <ul>
        <% seller_profile.errors.each do |error| %>
          <li><%= error.full_message %></li>
        <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= label_tag :first_name %>
    <%= text_field_tag :first_name %>
  </div>

  <div class="field">
    <%= label_tag :other_name %>
    <%= text_field_tag :other_name %>
  </div>

  <div class="field">
    <%= label_tag :last_name %>
    <%= text_field_tag :last_name %>
  </div>

  <div class="field">
    <%= label_tag :email %>
    <%= text_field_tag :email %>
  </div>

  <div class="actions">
    <%= submit_tag %>
  </div>
<% end %>

resources :sellers, only: [:new, :create, :show, :index, :destroy] do
    resources :seller_profiles
  end

您應該使用form_forform_with助手而不是form_tag 這些輔助方法將負責添加包裝的seller_profile鍵。

<%= form_for seller_profile do |form| %>
  <% if seller_profile.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(seller_profile.errors.count, "error") %> prohibited this seller_profile from being saved:</h2>

      <ul>
        <% seller_profile.errors.each do |error| %>
          <li><%= error.full_message %></li>
        <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= form.label :first_name %>
    <%= form.text_field :first_name %>
  </div>

  <div class="field">
    <%= form.label :other_name %>
    <%= form.text_field :other_name %>
  </div>

  ... replicate the same change for the rest of the fields ...

  <div class="actions">
    <%= form.submit %>
  </div>
<% end %>

如果錯誤是(param is missing or the value is empty: seller_profiles ,那是因為您在 params.require 中需要:seller_profile而不是:seller_profiles params.require

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM