我有一个问题 - 最近我用 devise gem 创建了用户。遗憾的是,“sign_in”按钮并没有真正正常工作 - 访问 sin_in 页面并单击“sign in”按钮后没有任何反应!如果我输入电子邮件和密码进行登录并不重要。我检查了日志,单击注册按钮后,日志中或运行服务器的终端上没有任何更改!所以我猜它不会发送任何请求?但问题仅在我第一次访问登录页面后出现,刷新后一切按预期工作。请帮助我,我不知道什么可能会导致这种奇怪的行为。
编辑:奇怪的是,我注意到只有在从主页前往登录页面后才会出现问题 - 如果我只需输入其地址而不是单击浏览器中的链接来进入登录页面,它就会起作用。但是两个操作之后的地址是相同的,所以我不知道......有我欢迎的观点:
<div id="homepage">
<header class="cf">
<h1 class="logo"><%= link_to "E-LEARN", "#" %></h1>
<nav>
<ul>
<li><%= link_to "Watch guides", root_path %></li>
<% unless user_signed_in? %>
<li><%= link_to "Log In", new_user_session_path %></li>
<% else %>
<li><%= link_to "Log Out", destroy_user_session_path, method: :delete %></li>
<li><%= link_to "Settings", edit_user_registration_path %></li>
<li><%= link_to "My Account", current_user %></li>
<% end %>
<li><%= link_to "Add tutorial", "#" %></li>
</ul>
</nav>
</header>
<div class="wrapper-skinny" id="welc">
<h1>Learn …Run Code Online (Sandbox Code Playgroud) 我试图在我的 Rails 应用程序中创建搜索方法,但遗憾的是 - 我的 SQL 知识相当可悲。我设法通过以下方式找到了在描述中搜索文本的指南:
@guides = Guide.where(['description LIKE ?', "%#{params[:search]}%"])
Run Code Online (Sandbox Code Playgroud)
或在标题中:
@guides = Guide.where(['title LIKE ?', "%#{params[:search]}%"])
Run Code Online (Sandbox Code Playgroud)
但我不知道如何同时查看标题和描述。请帮我解决这个问题。
此外,我将不胜感激任何学习 SQL 以在 Rails 应用程序中使用的来源的建议(我猜主要是 PostgreSQL?)。
在大多数语言(如c ++)中,传递数组会导致通过引用隐式传递它,因此对函数中传递的数组进行的任何更改都将导致更改原始数组。我正在学习Golang,在Alan AA Donovan和Brian W. Kernighan撰写的“ Go编程语言”一书中,它的行为不同于其他语言-不会隐式地通过引用传递数组。
这让我有些困惑-这是否意味着在没有引用的情况下传递数组不应该修改数组本身?让我说明一下:
func main() {
tab := []int{1, 2, 3}
fmt.Println(tab)
// Results in [1 2 3]
reverse(tab)
fmt.Println(tab)
// Results in [3 2 1]
}
func reverse(tab []int) {
for i, j := 0, len(tab)-1; i < j; i, j = i+1, j-1 {
tab[i], tab[j] = tab[j], tab[i]
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,数组不是由引用传递的,但是反向函数会修改原始数组,因此它的工作方式有点像C ++程序那样。谁能解释我的区别?
PS:很抱歉,如果这是一个假的问题,我对Golang完全陌生,并且试图很好地理解基本知识。