我的项目背后的想法是让用户能够在Members模型中登录和管理包含成员容器的等待列表。除了将新成员添加到等待名单之外,所有内容都要求用户登录。
在我的成员控制器顶部,我有以下内容:
skip_before_filter :authenticate_user!, :only => [:new, :create]
允许任何人创建memebers,但是在未登录时创建成员时我收到以下错误:
的ActionController :: UnknownFormat
在成员控制器的以下行中。
respond_to do |format|
我的创建操作如下所示:
def create
@member = Member.new(member_params)
if !user_signed_in?
@member.date_added = Time.now
@member.status = 1
respond_to do |format|
if @member.save
redirect_to(:back)
else
format.html { render action: 'new' }
format.json { render json: @member.errors, status: :unprocessable_entity }
end
end
else
respond_to do |format|
if @member.save
format.html { redirect_to @member, notice: 'Member was successfully created.' }
format.json { render action: 'show', status: :created, location: @member }
else
format.html { render action: 'new' }
format.json { render json: @member.errors, status: :unprocessable_entity }
end
end
end
end
登录后一切正常,但是只在未登录时才会引发此错误。任何帮助都非常感谢
答案 0 :(得分:0)
我认为当请求是JSON时,问题出在redirect_to(:back)中。
尝试将其替换为:
#redirect_to(:back)
format.html { redirect_to(:back) }
format.json { render ..............., status: :created }
答案 1 :(得分:0)
您忘记为redirect_to(:back)
提供格式。试试这个
respond_to do |format|
if @member.save
format.html { redirect_to(:back) }
else
................