我的问题与Rails命名约定难题有关。我的应用已注册,登录,注销功能。
对于注册页面,我使用了form_for(@user)
帮助器。
对于登录页面,我使用了form_for(:session, url: sessions_path)
。但是在我的routes.rb文件中,我已经包含了resources :sessions
,而不是在登录页面中form_for helper的参数中提到的单数。
如果有人可以:
1。)解决这个特定的form_for问题
2.) More importantly point me in the direction where I can learn/read about Rails naming conventions, I would be highly indebted.
答案 0 :(得分:1)
User.new
进行了初始化 - 这是一个新用户。注册时,您希望创建一个新用户,以便将form_for(@user)翻译为“新用户的表单”。请注意,在这种情况下,您提供form_for ActiveRecord用户实例,这就是它的使用方式。<%= f.text :name %>
,则会生成<input name="session[name]" type="text">
。此外,当现有用户登录时您不想创建新用户(如步骤1中所示),您只想为现有用户创建新会话,因此发布到sessions_path看起来非常直观。rake routes
并获取为您的应用程序设置的所有命名路由,这将使您非常了解rails如何将resources命令转换为命名路由。有关详细信息,请阅读以下内容: