控制器创建功能:@ user.save无法正常工作

时间:2014-04-23 09:23:27

标签: ruby-on-rails ruby-on-rails-4

我有一个视图,询问用户的电子邮件(只是电子邮件,没有密码)。所以我为此目的制作了一个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部分,这意味着电子邮件没有被保存。 我不知道为什么它不起作用。请帮忙。

2 个答案:

答案 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

非常感谢。