我有一个我的用户的显示页面,每个属性应该只在该页面上可见,如果它不是nil而不是空字符串.下面我有我的控制器,@user.city != nil && @user.city != ""为每个变量编写相同的代码行非常烦人.我不太熟悉创建自己的方法,但我可以以某种方式创建一个快捷方式来做这样的事情:@city = check_attr(@user.city)?或者有更好的方法来缩短这个程序吗?
users_controller.rb
def show
@city = @user.city != nil && @user.city != ""
@state = @user.state != nil && @user.state != ""
@bio = @user.bio != nil && @user.bio != ""
@contact = @user.contact != nil && @user.contact != ""
@twitter = @user.twitter != nil && @user.twitter != ""
@mail = @user.mail != nil && @user.mail != ""
end
Run Code Online (Sandbox Code Playgroud) 我有一个简单的数组,我试图获取数组中的每个第二项。不幸的是,我对 JavaScript 比 Ruby 更熟悉......
在 JavaScript 中,我可以简单地做
var arr = [1, 'foo', 'bar', 'baz', 9],
otherArr = [];
for (i=0; i < arr.length; i=i+2) {
// Do something... for example:
otherArr.push( arr[i] );
}
Run Code Online (Sandbox Code Playgroud)
现在我如何在 Ruby 中做到这一点?
我想创建一个自定义方法,我在我的questions_controller.rb文件中定义了它,如下所示:
def self.ping
@question = Question.first
@question.update(:amplify => @question.amplify + 1)
end
Run Code Online (Sandbox Code Playgroud)
现在的问题是我如何调用这个方法?我需要先定义路线吗?如何从控制台引用它?
提前致谢。