-1
當我嘗試在我的本地主機簽約,這是我的錯誤:不能註冊(錯誤「對象」的方法),無法登錄(爲「創建」方法錯誤)
NameError in Users#new
Showing /Users/alonbond/rails_projects/sample_app/app/views/shared/_error_messages.html.erb where line #1 raised:
undefined local variable or method `object' for #<#<Class:0x007f90a3c32d60>:0x007f90a3bf83b8>
Extracted source (around line #1):
1: <% if object.errors.any? %>
2: <div id="error_explanation">
3: <h2>
4: <%= pluralize(object.errors.count, "error") %>
這是「新」
<h1>Sign up</h1>
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<%= render 'fields', :f => f %>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
我的第二個問題是,當我嘗試登錄(我已報名前)代碼:
NoMethodError in SessionsController#create
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
此爲 'create' 方法的代碼:
def create
user = User.authenticate(params[:session][:email], params[:session][:password])
if user.nil?
flash.now[:error] = "Invalid email/password combination."
@title = "Sign in"
render 'new'
else
sign_in user
redirect_back_or user
end
end
for_for:
<%= form_for(:session, :url => sessions_path) do |f| %>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :password %><br />
<%= f.password_field :password %>
</div>
<div class="actions">
<%= f.submit "Sign in" %>
</div>
<% end %>
用於部分工作的@user現在,但用閃存錯誤替換'對象'是雜亂的,因爲更多的文件包括'對象',老實說,我不知道如何將它們全部替換爲工作閃存錯誤。 '對象'假設工作。那爲什麼不呢?非常感謝! –
@AlonWeissfeld你的'new'方法是否創建一個新用戶?如果沒有,我也希望'form_for'中有一個錯誤,但否則,我不知道。什麼版本的Rails? –
是的,'新'創建一個新用戶。無論如何,我已經在主要問題上發佈了form_for代碼,看起來很好。我正在使用rails 3.0.1,實際上我試圖將rails升級到3.1,但是當我嘗試安裝它時,出現無法解釋的「本機擴展」安裝失敗的錯誤。 –