我與地點和事件有關係has_and_belongs_to_many。當我創建一個事件不保存地方參數,但是是其他參數。但是,當我想編輯一個事件時,這不會使用保存的參數。 (image)¿參數有什麼問題,爲什麼不保存這個關係?由於參數丟失或值爲空不參數,只是身份證
事件模型
cla
\t \t has_and_belongs_to_many :users
\t \t has_and_belongs_to_many :sponsors
\t \t has_and_belongs_to_many :category
\t \t has_and_belongs_to_many :places
accepts_nested_attributes_for :places
end
放置模型
\t has_and_belongs_to_many :events \t
\t \t has_one :scores
\t \t has_and_belongs_to_many :categorys
\t
accepts_nested_attributes_for :events
活動控制器
條class EventsController < ApplicationController
before_action :events_params, only: [:create, :edit]
def index
\t @event = Event.all
end
def show
@event = Event.find(get_event)
end
def new
\t @event = Event.new
end
def create
@event = Event.new(events_params)
if @event.save
redirect_to events_path, notice: "Almacenado"
else
render "new", notice: "Danm"
end
end
def edit
params_filtered = Event.find(events_params)
@event = Event.find(get_event)
if @event.update(params_filtered)
redirect_to events_path
else
render 'new'
end
end
def destroy
@event = Event.find(get_event)
@event.destroy
redirect_to events_path
end
private
def events_params
params.require(:event).permit(:website,:city,:whybuy,:moendreinfo,:title,:description, :datestart, :dateend, :hourstart, :hourend, :price ,:avatar, :background, places_atributtes: [])
end
def get_event
@event = Event.find(params[:id])
end
end
路線
Rails.application.routes.draw do
root 'welcome#index'
resources :places do
resources :events
end
resources :events
get "events/:id" => "events#show"
get "events/:id/edit" => "events#edit"
devise_for :users, :controllers => { registrations: 'registrations' }
devise_scope :users do
get "profile_user/:id" => "users_profiles#profile_user"
get "usersall" => "users_profiles#usersall"
end
end
錯誤錯誤的鏈接
i.stack.imgur.com/Snl2m.png
形成該事件的新
<html>
<head>
\t
\t <title></title>
</head>
<body id="newevent">
\t <h3> Crear Evento </h3>
<div class="container-fluid">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 ">
<di>
<div id="divnewevent" >
<%=form_for @event do |eve|%>
\t <%= eve.label :title, "Titulo del evento" %></br>
<%= eve.text_field :title, class:"form-control", placeholder:"Stingi Fest Back Color", autofocus: true%></br>
\t <%= eve.label :description, "Descripción" %></br>
\t <%= eve.text_field :description, class:"form-control", placeholder:"No debe superar los 140 caracteres", autofocus: true%></br>
\t
<%= eve.collection_select(:place_ids, Place.all, :id, :name, {prompt: true}, {multiple: true, class: "input-lg"}) %>
<%= eve.label :datestart, "Fecha de apertura" %></br>
\t <%= eve.date_select :datestart, class:"form-control", placeholder:"Fecha de apertura o día del evento", autofocus: true %></br>
\t <%= eve.label :dateend, "Fecha de cierre" %></br>
\t <%= eve.date_select :dateend, class:"form-control", placeholder:"Fecha de cierre o día del evento", autofocus: true %></br>
\t <%= eve.label :hourstart, "Hora inicio" %></br>
\t <%= eve.time_select :hourstart, class:"form-control", placeholder:"Hora de inicio", autofocus: true %> </br>
\t
\t <%= eve.label :hourend, "Hora cierre" %></br>
\t <%= eve.time_select :hourend, class:"form-control", placeholder:"Hora de cierre", autofocus: true %></br>
<%= eve.label :website, "website" %></br>
<%= eve.text_field :website, class:"form-control", placeholder:"www.cosito.com", autofocus: true %></br>
<%= eve.label :city, "ciudad" %></br>
<%= eve.text_field :city, class:"form-control", placeholder:"Ciudad,co", autofocus: true %></br>
<%= eve.label :price, "Costo" %>
<%= eve.text_field :price, class:"form-control", placeholder:"Costo de entrada", autofocus: true %> </br>
<%= eve.label :whybuy, "Por qué asistir o comprar y dónde" %></br>
<%= eve.text_field :whybuy, class:"form-control", placeholder:"Plus de insentivo y donde comprar", autofocus: true %></br>
<%= eve.label :moreinfo, "más info" %></br>
<%= eve.text_field :moreinfo, class:"form-control", placeholder:"Mayor información", autofocus: true %></br>
<%= eve.label :avatar, "Foto de perfil" %>
<%= eve.file_field :avatar %>
<%= eve.label :background, "Foto de fondo" %>
<%= eve.file_field :background %>
<%= eve.submit %>
<%end%>
</div>
</div>
</div>
</div>
</div>
</body>
</html>