Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails4将2个数据(名字、姓氏)组合成一个可用于我的页面的可用且可调用的方法_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails RubyonRails4将2个数据(名字、姓氏)组合成一个可用于我的页面的可用且可调用的方法

Ruby on rails RubyonRails4将2个数据(名字、姓氏)组合成一个可用于我的页面的可用且可调用的方法,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,嗨,我是ruby和rails的新手,我需要一些关于表数据的帮助 这是数据库 ID | first_name | last_name 1 jack silan 2 jim rosalez 3 pedro hatab 我可以在index.htmml.erb中使用此命令使它们显示得很好 <%= @user.first_name + " " + @user.first_name %> 现

嗨,我是ruby和rails的新手,我需要一些关于表数据的帮助

这是数据库

ID  |  first_name  |  last_name  
 1      jack          silan
 2      jim           rosalez
 3      pedro         hatab
我可以在index.htmml.erb中使用此命令使它们显示得很好

<%= @user.first_name + " " + @user.first_name %>
现在不起作用,因为它在rails 3中是可以接受的,但在rails 4中是去润滑的,并且说 未定义的错误意味着它不知道这一点

我还尝试在用户控制器中执行类似的操作

def index
@full = full_name
end

private

def full_name
first_name + " " + last_name
end
但是现在他又回来了

undefined local variable or method `first_name' for #<StatusesController:0x000000061f4608>
Extracted source (around line #79):

77
78 def full_name
79 first_name + " " + last_name
80 
也使用这个

def fullname
"#{first_name last_name}"
end
在索引中使用此选项

<strong>name:<%= @full_name %></strong>
名称:

现在它没有显示任何错误,但问题是它没有显示任何内容

您不必将
全名
作为私有方法,因此请删除
私有
。 只需根据需要使用插值

用户
模型中定义以下方法:

def fullname
"#{first_name} #{last_name}"
end
并在如下视图中使用它:

<strong>name:<%= @user.full_name %></strong>
名称:

您不必将
全名
作为私有方法,因此请删除
私有
。 只需根据需要使用插值

用户
模型中定义以下方法:

def fullname
"#{first_name} #{last_name}"
end
并在如下视图中使用它:

<strong>name:<%= @user.full_name %></strong>
名称:

我假设你有用户模型,把方法放在用户模型外面
private
like

class User < ActiveRecord::Base

  #.... here some public methods

  def full_name
    first_name + " " + last_name
  end

  private

  #.... here some another methods
end
class用户
我假设你有用户模型,把方法放在用户模型外面
private
like

class User < ActiveRecord::Base

  #.... here some public methods

  def full_name
    first_name + " " + last_name
  end

  private

  #.... here some another methods
end
class用户
问题是控制器既没有
名字
也没有
。它必须调用那些用户:

状态控制器中

def full_name
  @user.full_name
end
def full_name
  "#{first_name} #{last_name}".strip
end
或者在视图中使用
@user.full_name

另外,对于
用户#全名
,这可能是一个更好的版本,在
用户

def full_name
  @user.full_name
end
def full_name
  "#{first_name} #{last_name}".strip
end

问题是控制器既没有
也没有
。它必须调用那些用户:

状态控制器中

def full_name
  @user.full_name
end
def full_name
  "#{first_name} #{last_name}".strip
end
或者在视图中使用
@user.full_name

另外,对于
用户#全名
,这可能是一个更好的版本,在
用户

def full_name
  @user.full_name
end
def full_name
  "#{first_name} #{last_name}".strip
end

首先,我想将您的第一个版本的代码修改为

def fullname [first_name, last_name].join(' ').strip end def全名 [名字,姓氏].join('').strip 结束 因为,可能有一种情况,名字可以为空,在这种情况下,您的姓名字段显示为“Paul”,即姓氏前的空格。 为了避免这种情况,我们应该使用“strip”

第二,如果您将上述代码放在模型类中,您可以使用用户的活动记录作为控制器的实例变量来访问它。 i、 e

@user=user.find(1) user\u fullname=@user.fullname
现在,user\u fullname将包含用户的全名。

首先,我想将您的第一个版本的代码修改为

def fullname [first_name, last_name].join(' ').strip end def全名 [名字,姓氏].join('').strip 结束 因为,可能有一种情况,名字可以为空,在这种情况下,您的姓名字段显示为“Paul”,即姓氏前的空格。 为了避免这种情况,我们应该使用“strip”

第二,如果您将上述代码放在模型类中,您可以使用用户的活动记录作为控制器的实例变量来访问它。 i、 e

@user=user.find(1) user\u fullname=@user.fullname 现在,user\u fullname将包含用户的全名。

我使用这个:

def name
  [first_name, last_name].reject(&:blank?).map(&:capitalize).join(' ')
end
我用这个:

def name
  [first_name, last_name].reject(&:blank?).map(&:capitalize).join(' ')
end


“{first_name}{last_name}”Ithink@user1868185如果您要调用fullname-它会工作-检查更新我现在尝试了它,但现在的问题是它没有显示任何与其他内容类似的内容。@user1868185运行rails c(打开控制台),然后运行:User.last(将显示上一个用户),然后运行User.last.fullname(将向您显示,该方法正在工作)。如果如我所说,请再次检查您在ViewDod控制台中为用户显示的对象user.last有效,但当我添加user.last.fullname时,它会给我一个错误“#{first_name}{last_name}”我think@user1868185如果您要调用fullname-它会工作-检查更新我现在尝试了它,但现在的问题是它没有显示任何类似的内容。@user1868185运行rails c(打开控制台),运行:User.last(将显示最后一个用户),然后运行User.last.fullname(将显示,该方法正在工作)。如果如我所说,请再次检查您在VIEW中显示的对象。控制台是否为用户运行user.last但当我添加user.last.fullname时,它会给我一个错误HI错误是我在模型中输入的最后一个代码,您看到了什么错误?未定义什么?这是它在StatuseController#index中显示的名称错误未定义的局部变量或#的方法“first_name”;此错误意味着您将该方法放入StatusController。请尝试将其放入您的用户模型。我更新并测试了其他注释,但现在它只显示错误即将发生。错误是我最后一次输入的代码。当您将其放入模型时,您看到了什么错误?未定义什么?这是它在StatuseController中显示的名称错误#索引未定义的局部变量或#的方法“first_name”#此错误意味着您将该方法放入StatusController。请尝试将其放入您的用户模型。我更新并测试了其他注释,但现在它只显示错误。我尝试了此操作,但没有显示任何错误ror,它也没有在屏幕上显示任何内容,但仍然感谢您的努力!您必须在索引视图中使用
@full
@user.full\u name
。控制器不公开方法进行查看。您好,正如您所说,我使用了@full,还使用了@user.full\u名称,但它没有给出任何提示