ruby-on-rails – Rails远程表单验证
发布时间:2020-12-17 03:36:24 所属栏目:百科 来源:网络整理
导读:只是一个简单的问题,我跟着 railscast 对于远程真实工作来说,这很好,但我如何验证模型呢? 我有这个 %= form_for [:admin,@course],remote: true do |f| % div class="field" %= f.label :title,"The title:" %br / %= f.text_field :title % /div div class
只是一个简单的问题,我跟着
railscast
对于远程真实工作来说,这很好,但我如何验证模型呢? 我有这个 <%= form_for [:admin,@course],remote: true do |f| %> <div class="field"> <%= f.label :title,"The title:" %><br /> <%= f.text_field :title %> </div> <div class="field"> <%= f.label :description,"Descripcion:" %><br /> <%= f.text_area :description %> </div> <div class="actions"> <%= f.submit "Send"%> </div> <% end %> 我如何处理错误? def create @course = Course.new(params[:course]) respond_to do |format| if @course.save format.html { redirect_to admin_index_url,:notice=> 'Done !!' } format.js else format.html { flash.now[:alert] = "Not done" render "new" } format.js end end end 任何想法为什么这不起作用? 解决方法
由于您的format.js块为空,并且通过以下方式调用create动作:remote => true,rails将执行默认操作,即查找create.js.erb以进行渲染,这可能是找不到的.
为了说明,将它放在app / views /?/ create.js.erb中的views目录中: alert('HI'); 然后将其放入您的控制器中以查看替代方案: respond_to do |format| if @course.save format.html { redirect_to admin_index_url,:notice=> 'Done !!' } format.js { render :js=>'alert("done");' } else format.html { flash.now[:alert] = "Not done" render "new" } format.js { render :js=>'alert("not done");' } end end 所以现在,您只需要将错误消息发送回HTML / Javascript,最可能的方法是将其放入相应的.js.erb文件中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |