不使用对象提交表单

时间:2012-08-21 18:19:34

标签: ruby-on-rails methods model

这是我在stackoverflow上的第一篇文章!我警告你,我刚开始学习Ruby on Rails。

目前,我正在使用rails进行音乐扫描项目。我正在尝试处理硬盘上的音乐。为此,用户可以在应用程序的配置部分内添加要扫描的文件夹。所以我在YAML文件中存储了我的应用程序的所有配置。

我创建了一个'config'控制器,目前包含2个视图:“adddir”和“index”。 索引视图显示通过加载YAML配置文件(由控制器'config'完成)收集的所有参数。

接下来,我想让用户可以添加要扫描的新文件夹。所以我做了一个到'adddir'视图的静态路由:

routes.rb文件:

match "/config/adddir" => "config#adddir"

现在,我想创建一个获取用户提供的路径的表单,并将其添加到YAML文件中。

所以我的问题是:如何创建一个能够使用我在用户点击提交按钮时创建的方法config#addfolder的表单?

我希望这很清楚。 最好的问候

1 个答案:

答案 0 :(得分:0)

欢迎来到SO。这是一个非常基本的问题。看看截屏视频吧。首先制作一个简单的项目(使用模型),然后您将看到Rails的ABC。

http://rubyonrails.org/screencasts/rails3/

基本上:

您生成控制器,如:

rails g controller config adddir

设置控制器,视图和路线。

然后进入您的视图文件夹并查看内部配置。有 adddir.html.erb 。您需要更改此文件,例如表单。

您可以打开表单:

http://localhost:3000/config/adddir
  

rake routes

将打印出您可以使用的可用路线列表(在表单内)。

现在神奇的是,Rails会生成 config_adddir_path (观看 _path )。您可以使用它来连接表单。

<%= form_tag(config_adddir_path, :method => "get") do %>
  <%= label_tag(:q, "Folder:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("index") %>
<% end %>

在你的控制器内(def adddir):

您可以访问参数:

def adddir
  logger.debug params.inspect
end

看看这里:

http://guides.rubyonrails.org/form_helpers.html