0
我的印象是,它可能在Rails link_to
标签内通过额外的参数下传递其他参数。我已经是一个按钮,用户可以点击移动到另一个控制器show
方法/视图,我需要能够通过@network_host.id
到新控制器issues_controller.rb
,但它不工作。相反,我被重定向回到我的root_url
。的Rails的link_to中
在用户将如何做到这一点的顺序:
- 用户导航到www.myserver.com/network_hosts/XX(显示方法)
- 控制器/在
network_hosts_controller.rb踢
class NetworkHostsController < ApplicationController
before_action :set_network_host, only: [:show]
def show
@network_host = NetworkHost.find(params[:id])
if @network_host
@major_issues = get_host_issues(@network_host, @network_host.last_test, "major")
@minor_issues = get_host_issues(@network_host, @network_host.last_test, "minor")
end
end
end
个
- 视图/ network_hosts/show.html.erb(用户点击的link_to按钮)
<tbody>
<% @major_issues.to_enum.with_index(1).each do |result, index| %>
<% issue = result.issue %>
<tr>
<td>
<%= link_to '<i class="fa fa-eye"></i>'.html_safe, issue_path({ id: issue.id, host: @network_host.id }), "data-toggle" => "tooltip", "title" => "View" %>
</td>
</tr>
<% end %>
</tbody>
- 应该然后火控制器/ issues_controller.rb(显示方法,即www.myserver.com/issues/5432),
class IssuesController < ApplicationController
def show
@issue = Issue.find(params[:id])
@network_host = NetworkHost.find(params[:host])
end
end
然而,步骤4不是worki ng,而是返回主页。所以在我的控制台,我看着正在传递什么参数,我没有看到host
参数:
Started GET "/issues/54387" for 127.0.0.1 at 2016-07-13 14:06:49 -0400
Processing by IssuesController#show as HTML
Parameters: {"id"=>"54387"}
上午我实现这个错了吗?
什么是在'意见/ network_hosts/show.html.erb'您呈现的HTML? –
只有一堆'@ network_host'值。没有任何问题,只是这个该死的链接。 – Godzilla74
更具体地说,html中呈现的链接是什么样的?他们是否正确地获得了额外的参数? –