我有一个会话列表(不是设计会话,是电影会话),我有一个链接到这个会话的新报价是一个来自用户的嵌套资源。要购买(创建要约),必须记录用户(因为创建要约需要用户的参考)。当我把before_action:authenticate_user!在session_controller(再次影院会议而不是设计会话)中我收到此错误:
NoMethodError in Devise::Sessions#new
Showing /home/ubuntu/workspace/app/views/users/sessions/new.html.erb where line #10 raised:
undefined method `name' for #<ActionView::Helpers::FormBuilder:0x000000034bc708>
这是我的routes.rb:
Rails.application.routes.draw do
resources :tickets
resources :offers
resources :prices
resources :movies
devise_for :sessions, controllers: {
new: 'session/new'
}
resources :sessions do
resources :offers
end
resources :rooms
resources :seats
resources :cinemas
get 'welcome/index'
devise_for :users, controllers: {
registrations: 'users/registrations'
}
root 'welcome#index'
end
这是我的session_controller(电影院会议,不是设计):
class SessionsController < ApplicationController
before_action :authenticate_user!
before_action :set_session, only: [:show, :edit, :update, :destroy]
respond_to :html
...
new.html.erb(session_controller):
<h1>New session</h1>
<%= render 'form' %>
<%= link_to 'Back', sessions_path %>
_form.erb(session):
<%= form_for(@session) do |f| %>
<% if @session.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@session.errors.count, "error") %> prohibited this session from being saved:</h2>
<ul>
<% @session.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :cinema_id %><br>
<%= f.collection_select :cinema_id, Cinema.all, :id, :nameCine %>
</div>
<div class="field">
<%= f.label :room_id %><br>
<%= f.collection_select :room_id, Room.all, :id, :description %>
</div>
<div class="field">
<%= f.label :movie_id %><br>
<%= f.collection_select :movie_id, Movie.all, :id, :title %>
</div>
<div class="field">
<%= f.label :bgn_date %><br>
<%= f.datetime_select :bgn_date %>
</div>
<div class="field">
<%= f.label :end_date %><br>
<%= f.datetime_select :end_date %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
答案 0 :(得分:0)
这是新手的错误,我正在寻找设计注册问题。但错误是在(设计)session / new的视图中,我已经自动生成了该名称的字段,但登录时不使用,只有电子邮件和传递字段。 我从(设计)会话中删除了名称字段/新的外观就像魅力一样。