如果在Rails帮助文件中声明?

时间:2013-11-30 18:15:46

标签: ruby-on-rails ruby

我在辅助文件中有这段代码:

  def admin_post_edit_destroy(post)
    if current_user.admin?
      link_to 'Edit', edit_post_path(post)
      link_to "delete", post, method: :delete, data: { confirm: "You sure" }
    end
  end

我让它返回delete

我只是想知道除了删除链接之外还需要添加什么才能显示编辑链接?我可以输入&&+或其他内容吗?

1 个答案:

答案 0 :(得分:3)

您遇到的问题是ruby方法只会自动返回计算的最后一项的值,因此您只能返回删除链接。尝试将这两个链接一起添加如下:

def admin_post_edit_destroy(post)
  if current_user.admin?
    link_to('Edit', edit_post_path(post)) + link_to('Delete', post, method: :delete, data: { confirm: "You sure" })
  end
end

您还可以从辅助方法返回两个值:

def admin_post_edit_destroy(post)
  if current_user.admin?
    return link_to('Edit', edit_post_path(post)), link_to('Delete', post, method: :delete, data: { confirm: "You sure" })
  end
end

然后你可以调用这样的方法来获得两个变量(edit_linkdelete_link)中的两个返回值:

edit_link, delete_link = admin_post_edit_destroy(@post)