【问题标题】:How to display a user clicked value in another view如何在另一个视图中显示用户点击的值
【发布时间】:2012-01-17 20:50:50
【问题描述】:

我是 Ruby on Rails 的新手。我有一个“状态”表。我有一个视图(比如视图 1)列出一个国家的所有州。当用户单击状态名称时,他/她会被带到另一个视图(例如视图 2),其中包含所选状态的详细信息。

我正在尝试使用find 方法。但只能将状态名称(在视图 1 中)链接到视图 2。 我是否需要将状态名称(来自视图 1)传递给变量并在第二个视图(即视图 2)中使用该变量?

这是在索引视图中

<% @cds.each do |cd| %>
<h5><%= link_to  cd.name :action=>:lwstlevel%></h5>

这是控制器。

def index       
    @cds = Cd.all
    end

    def lwstlevel               
    @x = Cd.find(params[:name])
    end

这是 lwstlevel 视图

<h2>Welcome to  <%= @x.name %> </h>
<p> <%= @x.dscr %> </p>

Cd 是我的“状态”表。在索引视图中,如果用户单击任何状态名称,他必须导航到 lwstlevel 视图,该视图应显示该状态的详细信息。 希望这就足够了。我尝试了几件事,但都没有达到预期的结果。

【问题讨论】:

  • 请显示一些代码以帮助解释您要完成的工作。具体来说,您想对不起作用的视图 2 做什么。
  • 请检查已编辑的问题。谢谢

标签: ruby-on-rails model-view-controller methods views controllers


【解决方案1】:

改变

<%= link_to cd.name, :action => :lwstlevel %>

<%= link_to cd.name, :action => :lwstlevel, :id => cd.name %>

def lwstlevel               
  @x = Cd.find(params[:name])
end

def lwstlevel               
  @x = Cd.find(params[:id])
end

将名称更改为 id 是 id 是成员操作的默认值,但是您可以将其保留为名称。

【讨论】:

  • 我收到此错误:参数数量错误(0 为 1)。
    :lwstlevel,:id => cd 行中的错误。标题 %>
  • 答案已编辑。我们在 linkt_to cd.title 和 :action 之间漏掉了一个逗号。
  • :我正面临这个问题。找不到 id=xxxxxxxx 的 Cd。参数:{"id"=>"xxxxxxxx"}。提前谢谢
  • 使用 Cd.find_by_name(params[:id])。我使用 find ,因为这是您在我们的问题中使用的。
  • 完美。感谢您的快速回复。
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2019-05-10
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
相关资源
最近更新 更多