1

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

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

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

我在控制器中的尝试在这里:

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

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

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

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

谢谢!

4

1 回答 1

0

尝试这样的事情:

def name
  redirect_to users(params[:name], 25) if params[:age].blank?
  # (rest of your action)
end
于 2013-10-04T21:21:04.710 回答