这基本上是一种无资源形式,但其他示例似乎不起作用。我使用魔法和formtastic。 formtastic工作就好了新用户的形式,但我似乎无法创建一个新的会话...使用Formtastic与巫术。我如何设置登录表单?
<%= semantic_form_for 'sessions', :url => sessions_path, :method => :post do |f| %> <%= f.inputs do %> <%= f.input :email %> <%= f.input :password %> <% end %> <%= f.buttons %> <% end %>
这是接近,但它输出
<input id="sessions_email" name="sessions[email]" type="text" />
而不是
<input id="sessions_email" name="email" type="text" />
所以当我提交表单,我得到一个TEMPL吃失踪错误
`模板丢失
缺少模板节/创建,应用程序/用{创建:处理程序=> [:ERB,:建设者,:咖啡]:格式=> [:HTML] :locale => [:en,:en]}。 `
我想我只需要知道如何设置具体的形式的'名称'属性,但这似乎有点破解。有没有更多'语义'的方式来做到这一点?请帮助谢谢。
编辑:这里的每个请求的控制器代码...
class UsersController < ApplicationController
before_filter :authenticate, :except => [:show, :new, :create]
before_filter :correct_user, :only => [:edit, :update]
before_filter :admin_user, :only => :destroy
def index
@title = "All users"
@users = User.paginate(:page => params[:page])
end
def show
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(:page => params[:page], :per_page => 6)
@title = @user.name
end
def new
@user = User.new
@title = 'Sign up'
end
def create
@user = User.new(params[:user])
if @user.save
Notifier.registration_confirmation(@user).deliver
sign_in @user
flash[:success] = "Welcome!"
redirect_to @user
else
@title = "Sign up"
render 'new'
end
end
def edit
@user = User.find(params[:id])
@title = "Edit user"
end
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:success] = "Profile updated."
redirect_to @user
else
@title = "Edit user"
render 'edit'
end
end
def destroy
User.find(params[:id]).destroy
flash[:success] = "User Removed"
redirect_to users_path
end
def following
@title = "Following"
@user = User.find(params[:id])
@users = @user.following.paginate(:page => params[:page])
render 'show_follow'
end
def followers
@title = "Followers"
@user = User.find(params[:id])
@users = @user.followers.paginate(:page => params[:page])
render 'show_follow'
end
private
def has_valid_signup_code?(code)
code == valid_signup_code
end
def correct_user
@user = User.find(params[:id])
redirect_to(root_path) unless current_user?(@user)
end
def admin_user
redirect_to(root_path) unless current_user.admin?
end
end
的感谢!
的问题是不是这个名字的输入,应该没问题。它可能是关于你在会话控制器的创建操作中所做的事情。你能提供代码吗? – tbk
代码提供!再次感谢。 – afxjzs
你可能也有一个sessions_controller.rb不是吗?该代码会更有趣;) – tbk