當nil
用戶點擊「註冊」,他鼓勵被記錄在之前提交一個目標,習慣和價值如何跳過會話創建?
但他可以通過點擊跳過這些形式之一:
的問題是,如果他跳過一個形式,現在則一個錯誤信息彈出:
TypeError in UsersController#create
no implicit conversion of nil into String
在這個例子中,我跳過了習慣的形式,因此正在對上調
users_controller
def create
@user = User.new(user_params)
if @user.save
# Goals
name = session.delete(:goal_name)
deadline = session.delete(:goal_deadline)
# Values
vname = session.delete(:valuation_name)
vimage = session.delete(:valuation_image)
# Habits
date_started = session.delete(:habit_date_started)
committed = session.delete(:habit_committed)
trigger = session.delete(:habit_trigger)
action = session.delete(:habit_action)
target = session.delete(:habit_target)
reward = session.delete(:habit_reward)
missed_days = session.delete(:habit_missed_days)
# Create
@user.habits.create(date_started: Date.parse(date_started), committed: committed, trigger: trigger, action: action, target: target, reward: reward, missed_days: missed_days).create_with_current_level
@user.goals.create(name: name, deadline: deadline)
@user.valuations.create(name: vname, image: vimage)
@user.send_activation_email
redirect_to root_url
else
render 'new'
end
end
我們如何才能讓用戶跳過?我一直試圖包括各種if/else
陳述,但我很難設置正確的方法來觸發條件。
上沒有錯誤發生什麼線? – blnc
@blnc它發生在我跳過的任何形式上,所以在這個例子中,我跳過了習慣形式,因此它在@ user.habits.create( –
)上被提出。它應該告訴你錯誤發生在哪一行。可能結果試圖爲需要「String」值的對象分配一個「Nil」值 –