首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将td元素的值传递给rails控制器

将td元素的值传递给rails控制器
EN

Stack Overflow用户
提问于 2012-07-16 02:17:21
回答 1查看 1.7K关注 0票数 0

我正在尝试将元素的值传递给rails控制器!

目前,我有这样的东西:

代码语言:javascript
运行
复制
<td id="dbname"><%= link_to db, :action => :show %></td>

这表示html表中的一行,其中包含字符串值,例如"development“。

当用户单击"development“链接时,<%= link_to ... %>从当前单击的位置获取值并将其传递给rails控制器操作,在本例中为show操作。

怎样才能做到这一点?

更新-生成链接:

代码语言:javascript
运行
复制
<% @dbs.each do |db| %>
<tr>
    <td id="dbname"><%= link_to db, :action => :show %> </td>
</tr>

更新2:

这是我的索引控制器:

代码语言:javascript
运行
复制
conn = Mongo::Connection.new
@dbs = conn.database_names #this returns an array of strings (which are the names of the databases)

现在,我希望能够单击这些数据库,然后将单击的文本传递给rails控制器show action。我不确定如何为这些链接生成自定义资源路径...但我正在考虑使用Ajax或与javascript相关的东西来实现。也许可以使用jQuery获取所单击链接的文本,然后向rails控制器发送一个Ajax请求,并将该文本作为参数!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-16 02:46:13

我认为这是一件奇怪的事情,但一个解决方案可能是使用javascript将id附加到每个链接的href作为查询字符串。

如果你能解释一下你试图实现的目标,也许我们可以找到一个更好的解决方案。

希望它能帮上忙!

编辑:

如果你有一个链接表,我认为你应该把它们当作一种资源,并用REST的方式来管理它们。

你的控制器应该有一个索引和显示动作,你应该在路由文件中将链接声明为一个资源(也许链接它是一个保留字,你必须使用一个不同的名称,我不确定),索引动作将获取所有的链接,当你呈现它们时,你可以在控制器中为每个链接指定类似于"link_path(link.id)“的链接(记住,你应该定义一个显示动作)你将收到链接id,这样你就可以用一个简单的”link.id“加载它,并将它传递给视图。

我建议你总是寻找其他方法来解决ROR中的问题。

编辑2:

好的,让我们看看这对你是否有效:

我假设你有一个模型来表示你正在谈论的那些链接,例如:

代码语言:javascript
运行
复制
class DataBaseLinks < ActiveRecord:Base

end

这个模型由你的数据库中的一个表来备份,如果你以rails的方式生成它,你也会有一个标识每个数据库链接的id列。

在您的控制器中,假设是DataBaseLinksController,您将拥有:

代码语言:javascript
运行
复制
class DataBaseLinksController < ApplicationController

  def index
    @dabatase_links = DataBaseLink.all
  end

  def show
    @database_link = DataBaseLink.find(params[:id])
  end

end

(我已经避免了所有的验证和检查)。

在你的index.html.erb中你需要做的就是:

代码语言:javascript
运行
复制
<% @database_links.each do |database_link| %>
  <%= link_to database_link.name, database_link_path(database_link.id) %>
<% end %>

这将生成具有指向show操作的正确路径的所有链接(可能路由帮助器有一点不同,但不是很多)。

另请注意,您必须将以下行添加到routes.rb中:

代码语言:javascript
运行
复制
resources :database_links, :only => [:index, :show]

你是如何看待它的?

编辑3:

(当我们找到一个正确的答案时,我会删除所有编辑过的答案)

好的,我假设你没有使用类似mongoid的东西,所以你没有活动的记录相似的对象。

您是否在自己的视图中尝试过此操作:

代码语言:javascript
运行
复制
<% dbs.each do |dbs_name| %>
  <%= link_to dbs_name, :controller => "your_controller", :action => :show, :dbs_name => dbs_name %>
<% end %> 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11494419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档