我有一個非常基本的登錄表單,用戶輸入他/她的名字(First Last)。爲什麼我的登錄表單不能在ruby-on-rails中工作?
下面是形式ERB代碼:
<%= form_for :current_user, url: { :controller => 'application', :action=>'current_user' } do |f| %>
<%= f.text_field :name, placeholder: 'First Last', :id => 'currentUser' %>
<%= f.submit 'Submit', :class => 'btn btn-primary' %>
<% end %>
這裏是行動CURRENT_USER:
def current_user
@current_user = User.find_by_name(params[:current_user][:name])
redirect_to '/calendar'
end
這裏是它的路線
match 'calendar/signin', to: 'application#current_user', via: 'post'
形式的作品,我通過在current_user操作中放置一個調試器來測試它。當我輸入params
時,它返回了我輸入的用戶名,因爲它應該有。但是一旦它回到/calendar
視圖@current_user再次變得未定義。我應該使用什麼而不是redirect_to '/calendar'
?由於
謝謝你,你的反應是非常豐富的。在我看來,問題是@current_user不能調用current_user方法來調用。所以,用戶信息沒有顯示的原因是我沒有調用這個方法。那麼,你會推薦什麼樣的解決方案呢?我應該把它分成兩個獨立的方法嗎? – Snubber
我的建議是在'before_filter'中觸發這個方法,這樣可以保證它的設置正確。 – tadman