我有一个视图,询问用户的电子邮件(只是电子邮件,没有密码)。所以我为此目的制作了一个Emailuser模型,如下所示:
class Emailuser < ActiveRecord::Base
VALID_EMAIL_REGEX = /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
validates :email, presence: true,
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
end
和各自的“Emailusers_controller”如下:
class EmailusersController < ApplicationController
def home
@user = Emailuser.new
end
def show
@user = Emailuser.find(params[:id])
end
def create
@user = Emailuser.new(params[:user])
if @user.save # -----------------------> not working
render 'show'
else
render 'public'
end
end
def public
end
end
show.html.erb:
<div class="row">
<aside class="span4">
<p>Email ID: <%= @user.email %></p>
</aside>
</div>
home.html.erb:
<%=form_for(@user) do |f|%>
<%= render 'shared/error_messages' %>
<div id="example1">
<section>
<%= f.label :email %>
<%= f.text_field :email, placeholder: "Enter Email"%>
<%= f.submit "Create my account" %>
</section>
</div>
<%end%>
它正好在我运行上面的代码时,它总是呈现else部分,这意味着电子邮件没有被保存。 我不知道为什么它不起作用。请帮忙。
答案 0 :(得分:0)
开始的第一个地方是使用CamelCase作为您的课程声明&amp; snake case代表您的文件名:
Class EmailUser < ActiveRecord::Base #-> app/models/email_user.rb
Class EmailUserController < ApplicationController # -> app/controllers/email_users_controller.rb
您可能遇到的另一个问题是验证 - 如果您更新了类声明,请告知我们请求的日志
答案 1 :(得分:0)
我找到了解决方法。 实际上添加强参数已经成功了。 我通过添加以下内容来实现它:
private
def user_params
params.require(:emailuser).permit(:email)
end
非常感谢。