我正在尝试使用Rails创建一个页面,其中显示存储在文件夹中的图像,当单击一个页面时,它会将图像文件名提交给相关表单。虽然我已经设法在网页上显示图像,但我根本无法提交工作。
我目前的源代码是:
<% @fileArray.each do |x| %>
<%= image_submit_tag(x, {:id => x, :action => "submitimage"}) %>
<% end %>
fileArray是目录中所有图像文件的列表,我的submitimage操作当前定义为:
def submitimage
redirect_to :controller => 'home', :action => "index"
end
目前它似乎没有调用重定向函数(我将用代码替换以将变量传递给表单)。
我对rails很新,所以我希望我在这里错过了一个技巧,但有人知道点击图像时提交动作的方法吗?
答案 0 :(得分:0)
image_submit_tag
没用。就像你拥有它一样,它只是一个按钮。你最好把它变成一个链接:
<%= link_to image_tag(x), submit_image_path(:filename => x) %>
在您的路线中:
match 'images/:filename/submit' => 'images#submit', :as => :submit_image
在你的控制器中:
def submit
@image = Image.create(:filename => params[:filename]) # or whatever
end
编辑我应该指出,使用资源丰富的路线可以更好地构建,但我会把它留给你。您可以阅读所有相关信息here。