如果未传递可选参数,则尝试呈现或重定向到指定的url

时间:2013-10-04 09:30:50

标签: ruby-on-rails routes render optional-parameters pushstate

我有一个带有可选参数的路线

name GET    /:name(/:age)(.:format)         users#name

在关联的控制器中,我想说如果未传递可选的age参数(如在localhost:3000 / FirstName%20Lastname /中的url),则将它们带到具有年龄的路由,例如localhost:3000 /姓%20Lastname / 25。

我在控制器中的尝试是:

def name
 @user = User.find_by_name(params[:name])
 !params[:age].nil? ? gon.currentyr = params[:age] : render name_path(@user.age)
 ...
end

但这导致随机错误“语法错误,意外的tIDENTIFIER,期待keyword_do或'{'或'('' 我不认为问题实际上是语法,因为当我将其更改为

!params[:age].nil? ? gon.currentyr = params[:age] : gon.currentyr = @user.age

无需将年龄参数添加到URL的末尾即可。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

def name
  redirect_to users(params[:name], 25) if params[:age].blank?
  # (rest of your action)
end