【问题标题】:Rails: Change value of a ID in the view set by current_user.idRails:在 current_user.id 设置的视图中更改 ID 的值
【发布时间】:2017-11-27 13:28:59
【问题描述】:

在我的 application.html.erb 中,有一个隐藏的输入字段,id=current_user.id,所以在这种情况下是这样的:

<input type="hidden" id="user_id" value="<%= current_user.id %>">

有没有办法为下一个请求更改此 ID?所以当我重新加载页面时,我会得到一个我选择的数字,而不是 current_user.id。

谢谢。

【问题讨论】:

  • 可以使用jquery或者js来查询user_id的值。试试这样的$("#user_id").val(2)$("#user_id").val(this_id_you_want_to_change)
  • 非常感谢您的帮助。是的,但在这种情况下,我重新加载页面,然后在浏览器 js 控制台中更改 ID。这没关系,但如果可能的话,我需要一些东西,在页面重新加载期间更改 ID,而不是在页面加载后......谢谢
  • 你可以在 部分写
  • @rod,你真的应该告诉我们更多......为什么它应该保存 user_id 并且下次保存一些随机数?
  • 是的,用户可以查看和更改文档中的任何内容。包括隐藏的输入。

标签: javascript ruby-on-rails ruby


【解决方案1】:

如果您想设置或更改每个请求,请设置参数并加载它。

<input type="hidden" id="user_id" value="<%= params[:id] || current_user.id %>">

并在您想要更改时设置 id 参数。

【讨论】:

  • 非常感谢。假设我是一个普通用户,无法访问应用程序开发。是否可以更改此值?
  • 是的,只需在 url 参数中添加 id 值,例如 example.com?id=value 它就会改变。
【解决方案2】:
 $(document).ready(function(){
    var id = $("#user_id").val();
    var originalInput = $('[id="user_id"]');
    var input = $('<input />', {
        'id':'user_id_2',
        'type': 'text',
        'value': 2
    });
    $(originalInput).replaceWith(input);
})

【讨论】:

  • 非常感谢。假设我是一个普通用户,无法访问应用程序开发。是否可以更改此值?
【解决方案3】:

也许 LocalStorage 可以帮助你。

localStorage.setItem('choosed_user_id', id)

重新加载后

if (!!localStorage.getItem('choosed_user_id', id)) set new id

【讨论】:

  • 非常感谢。假设我是一个普通用户,无法访问应用程序开发。是否可以更改此值?
  • 是的,用户可以从开发控制台或隐藏输入中的源更改 localStorage。如果您想限制/验证此值的更改,您需要在后端执行此逻辑
猜你喜欢
  • 2012-02-08
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多