小编ste*_*392的帖子

使用Devise创建`Users`显示页面

我正在尝试创建一个用户show页面(将用作个人资料页面)但我对如何使用Devise这样做感到困惑.似乎Devise没有任何类型的show定义 - 有没有什么方法可以访问Devise正在实现的控制器,以便制作一个或者我必须覆盖它们?

ruby-on-rails show devise

45
推荐指数
3
解决办法
3万
查看次数

无需密码即可更新`User`属性

现在,用户可以编辑一些属性,而无需输入密码,因为我的验证设置如下:

validates :password, :presence =>true, :confirmation => true, :length => { :within => 6..40 }, :on => :create
validates :password, :confirmation => true, :length => { :within => 6..40 }, :on => :update, :unless => lambda{ |user| user.password.blank? } 
Run Code Online (Sandbox Code Playgroud)

但是,在用户执行此操作后,将删除其密码 - update_attributes将其密码更新为"".这是我的更新定义:

def update

    if @user.update_attributes(params[:user])
        flash[:success] = "Edit Successful."
        redirect_to @user
    else
        @title = "Edit user"
        render 'edit'
    end
end
Run Code Online (Sandbox Code Playgroud)

我也尝试使用另一种使用update_attribute的定义:

def save_ff
    @user = User.find(params[:id])
    @user.update_attribute(:course1, params[:user][:course1] )
    @user.update_attribute(:course2, params[:user][:course2] )
    @user.update_attribute(:course3, params[:user][:course3] )
    @user.update_attribute(:course4, params[:user][:course4] )
    redirect_to …
Run Code Online (Sandbox Code Playgroud)

passwords validation ruby-on-rails update-attributes

26
推荐指数
5
解决办法
2万
查看次数

在Devise中将name属性添加到`User`

我正在尝试为Devise提供的User模型添加name属性.我在我的数据库中添加了一个"名称"列,并更改了注册视图,以便它询问用户的名字:

<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <p><%= f.label :name %><br />
  <%= f.text_field :name %></p>

  <p><%= f.label :email %><br />
  <%= f.email_field :email %></p>

  <p><%= f.label :password %><br />
  <%= f.password_field :password %></p>

  <p><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></p>

  <p><%= f.submit "Sign up" %></p>
<% end %>

<%= render :partial => "devise/shared/links" %>
Run Code Online (Sandbox Code Playgroud)

它允许我登录,但是当我这样做后检查数据库时,name: nil.我是否必须向Devise的User控制器添加一些东西?谢谢!

attributes ruby-on-rails custom-attributes devise

21
推荐指数
4
解决办法
1万
查看次数

未定义的方法password_changed?错误

我正在尝试设置我的程序,以便仅在密码更改时验证密码(这样用户可以编辑其他信息而无需输入密码).

我目前收到错误消息

NoMethodError in UsersController#create, undefined method `password_changed?' for #<User:0x00000100d1d7a0>
Run Code Online (Sandbox Code Playgroud)

当我尝试登录时

这是我的验证码user.rb:

    validates :name,  :presence => true,
 :length   => { :maximum => 50 }
validates :email, :presence   => true,
:format     => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
validates :password, :presence =>true, :confirmation => true, :length => { :within => 6..40 }, :if=>:password_changed?  
Run Code Online (Sandbox Code Playgroud)

这是我的创建方法users_controller.rb:

def create
    @user = User.new(params[:user])
    if @user.save
        sign_in @user
        flash[:success] = "Welcome to the Sample App!"
        redirect_to …
Run Code Online (Sandbox Code Playgroud)

validation ruby-on-rails password-confirmation nomethoderror

8
推荐指数
1
解决办法
2980
查看次数

语法错误:使用if/else if时意外的$ end?

我从我的一个控制器类中得到一个错误,我无法弄清楚为什么.错误是:

SyntaxError in TermsController#show, syntax error, unexpected $end, expecting keyword_end
Run Code Online (Sandbox Code Playgroud)

这是terms_controller.rb:

class TermsController < ApplicationController

    def show
        @term = Term.find(params[:id])
        if @term.id == 1
            @title = "Fall"
        else if @term.id == 2
            @title = "Winter"
        else if @term.id == 3
            @title = "Spring"
        else if @term.id == 4
            @title = "Summer"
        end 
    end 
end 
Run Code Online (Sandbox Code Playgroud)

我的展示页面目前只包括:

<h1> <%= @title %> </h1>
Run Code Online (Sandbox Code Playgroud)

这可能是我失踪的小事 - 谢谢你的帮助!

ruby syntax ruby-on-rails

5
推荐指数
1
解决办法
8698
查看次数

使用rails中的复选框

我以前从未在rails中使用过复选框,也无法弄清楚我做错了什么.当我尝试加载页面时,我收到一条错误消息NoMethodError in Dplans#show, undefined method "merge" for "Art":String

以下是Dplans show页面上我的复选框表单的代码:

<%= form_for @dplan, :url=>{ :action=>"update_distribs" } do |f| %>
<%= f.check_box :Art, 'Art' %> <b>Art</b> <br/>
<%= f.check_box :Lit, 'Lit' %> <b>Lit</b> <br/> <br/>

<div class="actions">
  <%= f.submit "Save" %>
</div>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

艺术和点亮都是字符串而且都attr_accessibledplan.谢谢你的帮助!

checkbox ruby-on-rails nomethoderror

3
推荐指数
1
解决办法
5243
查看次数