我正嘗試在兩個不同的地方調用控制器操作。即使在定義實例變量時獲取nil:NilClass的未定義方法`[]'
的控制器如下:
def create
@phone_number = PhoneNumber.find_or_create_by(phone_number: params[:phone_number][:phone_number])
@phone_number.generate_pin
@phone_number.send_pin
respond_to do |format|
format.js # render app/views/phone_numbers/create.js.erb
end
end
我想打電話給create
在視圖中的鏈接:
<%=link_to "Resend Pin", phone_numbers_path, method: :post %>
我耙路線輸出看起來是這樣的:
phone_numbers POST /phone_numbers(.:format) phone_numbers#create
new_phone_number GET /phone_numbers/new(.:format) phone_numbers#new
phone_numbers_verify POST /phone_numbers/verify(.:format) phone_numbers#verify
我在PhoneNumber
activerecord有數據。當我點擊「重新發送引腳」我收到以下錯誤:
NoMethodError in PhoneNumbersController#create
undefined method
[]」爲無:NilClass`
有人可以告訴我什麼我錯過了?
html.erb
<div id="send-pin">
<h3>What's your phone number?</h3>
<%= form_for @phone_number, remote: true do |f| %>
<div class="form-group">
<%= f.text_field :phone_number %>
</div>
<%= f.submit "Send PIN", class: "btn btn-primary", id: 'send-pin-link' %>
<% end %>
</div>
<div id="verify-pin">
<h3>Enter your PIN</h3>
<%= form_tag phone_numbers_verify_path, remote: true do |f| %>
<%= hidden_field_tag 'hidden_phone_number', '' %>
<div class="form-group">
<%= text_field_tag :pin %>
</div>
<%= submit_tag "Verify PIN", class: "btn btn-primary" %>
<% end %>
<%=link_to "Resend Pin", phone_numbers_path, method: :post %>
</div>
'PARAMS [:PHONE_NUMBER]''是你nil'創建行動中。您需要將它與請求一起傳遞。 –