【问题标题】:Rails Routing and link_toRails 路由和 link_to
【发布时间】:2014-11-12 06:39:39
【问题描述】:

这里有点晚了,所以也许这是一个微不足道的问题,我错过了一些简单的东西。但是,当我单击一个按钮(带有 link_to)时,我创建了以下内容附加到我的 URL:

%23<ActionView::Helpers::FormBuilder:0x3ef1fd8>

为什么会这样,我该如何预防?再次,如果这是一个肤浅的问题,我深表歉意。如果需要,我可以发布更多关于路线的信息。

谢谢!

编辑:根据要求提供更多信息。

查看:

<%= link_to "Index", welcome_path(f), :class => 'button' %>

其中 f 是 form_for 循环的一部分。我想我传递了错误的参数,但我不确定。

相关路线:

get "index" => 'welcome#show', :as => 'index'

更新:

感谢大家的帮助。我最终通过复数我的控制器(我不知道为什么我以前没有它)并使用 welcome_url 来让它工作。这似乎起到了作用。

【问题讨论】:

  • 你能把视图代码贴在你有这个表单和按钮的地方吗?
  • 我们需要更多代码才能看到发生了什么。
  • 大家好,我添加了更多信息。再次感谢。
  • welcome_path 不需要任何参数。
  • 您可能希望发布您的routes.rb 文件的所有内容。

标签: ruby-on-rails helper link-to


【解决方案1】:

查看Rails API docs for ActionView::Helpers::FormBuilder 中的第一个示例和段落:

<%= form_for @person do |f| %>
Name: <%= f.text_field :name %>
Admin: <%= f.check_box :admin %>
<% end %>

这就是说f 代表一个实例化的 FormBuilder 对象,您将其传递给您的link_to 助手中的welcome_path 方法。

通常,您不会在路线中混合使用#index 和#show。根据您要使用 WelcomesController 的目的,您可能实际上希望将您的 root_path 路由到 welcome_index:

get "welcome/show" => 'welcome#show', :as => 'welcome'
root 'welcome#index'

您应该在终端中运行:$ rake routes,以了解您可以在应用中使用的路径视图助手。

也许您正试图将用户引导至个性化的欢迎页面。您可以为相应的 link_to 助手设置类似的内容,这样看起来最好:

<%= link_to "Show", welcome_path(@user.id), :class => 'button %> 
<%= link_to "Index", root_path, :class => 'button' %>

【讨论】:

  • 这很好地解释了事物的运作方式。我还在学习 Rails 路由,这很有帮助。谢谢!
猜你喜欢
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
相关资源
最近更新 更多