这是我的代码:
jobs.map do |record|
[
record.id,
record.jobtitle,
record.date,
if (record.expired) then
"expired"
else
"available"
end
,
record.views_count
]
但显示错误:syntax error, unexpected ',', expecting ']'
我能怎么做?感谢任何帮助,因为我是初学者。
答案 0 :(得分:1)
您可以改为使用三元语句:
jobs.map do |record|
[
record.id,
record.jobtitle,
record.date,
(record.expired ? "expired" : "available"),
record.views_count
]
答案 1 :(得分:1)
删除' then
'在你的if / else语句中。使用'然后'对于单行if语句更清晰。另外,将if / else语句移到数组外部。所以:
jobs.map do |record|
if (record.expired)
x = "expired"
else
x = "available"
end
[
record.id,
record.jobtitle,
record.date,
x,
record.views_count
]
如果你喜欢单行,你可以使用三元运算符?
作为if / else,例如:record.expired ? x='expired' : x='available'
答案 2 :(得分:1)
我从Godwin的回答中注意到了这一点,你只需要括号。
jobs.map do |record|
[
record.id,
record.jobtitle,
record.date,
(if (record.expired) then
"expired"
else
"available"
end)
,
record.views_count
]
为我工作,希望有所帮助。