我希望使用sinatra在本地文件路径上创建一个目录。为此,我需要使用表单输入字段来选择要调用目录的名称。
这是我到目前为止所做的,遗憾的是我发现的一切都没有明确说明如何将输入值传递给类方法。
我是谷歌搜索6小时,感谢帮助。
app.rb
require 'sinatra'
require 'shotgun'
require 'fileutils'
class Hello
def make_folder
FileUtils.mkdir_p "/Users/aronlilland/Documents/ruby/" + name_of_directory
end
end
get '/' do
erb :form
end
post '/' do
# what do i put here to capture the name of the directory the user inputs?
end
form.erb
# what do I put here to link the input value with app.rb?
<form action="/form" method="post">
<input type="text" name="name_of_directory">
<input type="submit">
</form>
答案 0 :(得分:0)
从表单上的HTML中,您已设置action='/form' method='post'
。
这意味着您需要制作post '/form'
路线。
在那条路线中你可以说
FileUtils.mkdir_p "/Users/aronlilland/Documents/ruby/" + params[:name_of_directory]
由于表单输入有name='name_of_directory'
,因此它成为params散列中的键。
顺便说一句,将值传递给类方法很简单,只需在方法中添加一个参数
即可class Example
def self.class_method(parameter)
puts parameter
end
def instance_method(parameter)
puts parameter
end
end