【问题标题】:link_to one page but controller from another in Rails在 Rails 中链接到一个页面但来自另一个页面的控制器
【发布时间】:2011-07-04 11:23:59
【问题描述】:

我在堆栈上看到了一些类似的问题,但我认为这不是重复的,因为我得到的每个答案都是针对一个潜在问题的。

我会保持简单。我想知道如何点击一个链接,让它把用户带到一个页面,但从另一个页面执行一个 def。这是在一个网络爬虫的 Rails 应用程序中,我认为这很简单,但对我来说很讨厌。

目前我有:

<td><%= link_to 'Crawl!', crawl_path  :controller => :crawl, :action => :crawl  %>

这会在爬虫完成运行后将用户带到爬虫的索引页面。 我想做的是将它们重定向到不同的页面。即jobs_path,它显示了爬虫站点和状态的列表(这工作正常,我只想将它包括在内)。如果我这样尝试:

<td><%= link_to 'Crawl!', jobs_path,  :controller => :crawl, :action => :crawl  %>

用户被定向到作业页面,但爬虫脚本从未运行,因此作业列表从未更新。为了记录,每个工作只是一个 url 和它所在的深度。

这只是一个语法错误还是我离题很远?

任何帮助表示赞赏。

【问题讨论】:

  • 附注。如何从这样的记录中删除。 @jobs.delete?
  • 在您的控制器 destroy 中您将执行 @jobs = Job.find(params[:id]);@jobs.destroy 操作。你可以把它放在两行上,然后去掉;。你需要一个合适的 link_to 帮助器来指向销毁方法,即 &lt;%= link_to "Delete", job_path(job), :confirm =&gt; "Are you sure?", :method=&gt;:delete %&gt;

标签: ruby-on-rails syntax controller web-crawler link-to


【解决方案1】:

您将redirect_to 中的crawl#crawl 设置为什么?也许将其设置为在完成后重定向到jobs_path

【讨论】:

  • 我也会添加正确的路线:crawl_path 这样你就有了:link_to "Crawl!", crawl_path
  • @you2guys 谢谢!我只是在那里改变了它。我仍然对 ruby​​ 的语法和良好实践有所了解。 @Mike 我在 crawl#crawl 中没有任何重定向。我什至不知道如何诚实。您是否建议我链接到抓取页面并从那里重定向?
  • 127.0.0.1:8080/jobs"> 足够简单。只需将其放在爬虫显示页面中即可。像魅力一样工作。
  • @overtone best you read this - 这将是解决问题的方法。您可能还想考虑做redirect_to jobs_path and return
  • @Mike 我现在有类似的东西用于数据库比较,但它不起作用,因为 job.all 返回空,我不知道为什么。
猜你喜欢
  • 2015-11-01
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多