簡體   English   中英

我在rails中的下拉列表做錯了什么?

[英]What am I doing wrong with a dropdownlist in rails?

我把它們放在上下文中,我來自智利,我正在構建一個預訂引擎,我需要在引擎中定義客戶的當前帳戶,為此我制作了一個列表並將其放在 select 中,它給了我#ActionView::Base:0x00000000024478 的以下錯誤未定義方法`current_acounts_path' 你是說嗎? current_accounts_path

我該如何解決這個問題謝謝我分享代碼謝謝

Controller

class CurrentAccountsController < ApplicationController
  before_action :authenticate_user!
  
  def index
    @currentaccounts = CurrentAcount.all
  end

  def new
    @currentaccount = CurrentAcount.new
    @clients = Client.all
  end

  def create
    @currentacount = CurrentAcount.new(set_params)
    @currentacount.client_id = @client.id
    if (@currentacount.save)
      redirect_to current_accounts_path, notice: "Cuenta Corriente Guardada" 
    else
      render :new
      flash.alert = "No se pudo Guardar Cuenta Corriente"
    end
  end

  def edit

  end

  def update
    @currentaccount.client_id =  @client.id
    if (@currentaccount.update(set_params))
      redirect_to current_accounts_path, notice: "Modificacion de Cuenta Corriente Guardada" 
    else
      render :edit
      flash.alert = "No se pudo Modificar la Cuenta Corriente"
    end
  end

  def show

  end

  def destroy
    if (@currentaccount.destroy)
      redirect_to current_accounts_path, notice: "Eliminada Cuenta Corriente"
    else
      redirect_to current_accounts_path, notice: "No se pudo Eliminar Cuenta Corriente"
    end
  end

  private

  def set_params
    params.require(:current_acount).permit(:mail, :client_id, :number, :bank, :city, :telephone_contact, :type_account)
  end

  def set_client
    @client = Client.find(params[:client_id])
  end

end

Model

class CurrentAcount < ApplicationRecord
  belongs_to :client

  
end

形式

<%= simple_form_for @currentaccount do |f| %>
  <%= f.association :client, collection: @clients.map { |c| [c.name, c.id] } %>
  <%= f.input :number, label: "Numero cuenta Corriente" %>
  <%= f.input :type_account, prompt:"Elija tipo de cuenta", collection: ["Cuenta Correinte", "Cuenta Vista", "Cuenta de Ahorro"]%>
  <%= f.input :bank, prompt:"Elija un Banco", collction: ["Banco de Chile", "Banco Internacional", "Scotiabank Chile ", "BCI", "Corpbanca", "Bnaco BICE", "HSBC Bank (Chile)", "Banco Santander-Chile", "Banco Itaú Chile", "Banco Security", "Banco Falabella", "Deutche Bank (Chile)", "Banco Ripley", "Rabobank Chile", "Banco Consorcio", "Banco Penta", "Banco Paris", "Banco Bilbao Vizcaya Argentaria, Chile (BBVA)", "Banco BTG Pactual Chile", "BancoEstado", "Banco Do Brasil S.A.", "JP MORGAN BANK, N.A.", "Banco de La Nacion Argentina", "The Bank of Tokyo-Mitsubishi UFJ, LTD"] %>
  <%= f.input :city, label: "Ciudad"%>  
  <%= f.input :telephone_contact, label: "Telefono"%>
  <%= f.input :email_contact, label: "Email"%>
  <%= f.submit "Agregar" %>
  <%= link_to  "Volver", current_accounts_path(@reservation.client_id) %>
<% end %>

謝謝大家

更改您的 model 以獲得正確的拼寫。 命名需要一致:

CurrentAccount                 # model
resources :current_accounts    # routes
models/current_account.rb      # filenames and
views/current_accounts/        #   directories are also important.
@current_accounts              # instance variables; less important,
@current_account               #   but why make them different.

運行生成器以獲取默認設置:

$ bin/rails generate scaffold_controller CurrentAccount

只是要注意幾個地方:

@currentaccounts = CurrentAcount.all
#        ^^                ^

@currentaccount = CurrentAcount.new
#        ^^               ^

@currentacount = CurrentAcount.new(set_params)
#        ^               ^

實際錯誤來自表單生成器,因為它使用CurrentAcount model 為表單操作生成 URL:

<%= simple_form_for @currentaccount do |f| %>

# which is trying to get the url
<%= url_for @currentaccount %>

# which is trying to call a named route based on the class name
# something like this:
<%= send "#{@currentaccount.model_name.route_key}_path" %>
# => undefined method `current_acounts_path'

暫無
暫無

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

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