我想在注册期间首先进行表单验证我想检查user_name
之前是否使用过并且我想从头开始制作它而不使用宝石以了解它是如何工作的,所以我找到了这个问题,我我试图实现一个我在那里找到的答案 1-我使用 js2coffee 将 js 代码更改为 coffe以便在 users.js.coffee 中使用它而不是在 application.js 中
jQuery ->
$("[data-validate]").blur ->
$this = $(this)
$.get($this.data("validate"),
user: $this.val()
).success(->
$this.removeClass "field_with_errors"
).error ->
$this.addClass "field_with_errors"
2-我的路线文件中有这个
devise_for :users, :controllers => { :registrations => "users" }
resources :users, only: [:index, :new, :create, :show, :destroy, :edit, :update] do |user|
collection do
get 'checkname'
end
end
3- 在我的 users_controller 里面
def checkname
if User.where('user_name = ?', params[:user]).count == 0
render :nothing => true, :status => 200
else
render :nothing => true, :status => 409
end
return
end
4- 我的表格 new.html.erb
<%= simple_form_for(@user) do |f| %>
<%= f.error_notification %>
<div class="inputs">
<%= f.input :user_name, input_html: { data-validate="/users/checkname" }%>
</div>
<div class="actions">
<%= f.button :submit, "Accept", :class => "btn btn-inverse" %>
</div>
<% end %>
我得到的错误(因为如果我删除input_html: { data-validate="/users/checkname" }
了错误,我不知道如何使 data-validate 属性起作用,但我无法进行用户名验证)
SyntaxError at /users/new
syntax error, unexpected '}', expecting tASSOC
对此有任何帮助,因为我进行了很多搜索,但找不到更新的示例