ruby-on-rails – Ruby on Rails:如何使用link_to将参数从视图传递给控制器​​,而不会在URL中显示参数

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Ruby on Rails:如何使用link_to将参数从视图传递给控制器​​,而不会在URL中显示参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前在View中使用一个link_to帮助程序来传递参数,如title,author,image_url和isbn返回给控制器 @H_301_2@<%= link_to 'Sell this item',new_item_path(:title => title,:author => authors,:image_url=>image,:image_url_s=>image_s,:isbn=>isbn,:isbn13=>isbn13 ) %>

然后,控制器会将参数分配给稍后在View中的表单使用的对象(在new.html.erb中)

@H_301_2@def new @item = Item.new @item.title = params[:title] @item.author = params[:author] @item.image_url = params[:image_url] @item.image_url_s = params[:image_url_s] @item.isbn = params[:isbn] @item.isbn13 = params[:isbn13] respond_to do |format| format.html # new.html.erb format.xml { render :xml => @item } end end

那么new.html.erb将被调用.
这是一切正常,但网址显示所有的参数

@H_301_2@http://localhost:3000/items/new?author=Michael+Harvey&image_url=http://ecx.images-amazon.com/images/I/51vt1uVjvLL._SL160_.jpg&image_url_s=http://ecx.images-amazon.com/images/I/51vt1uVjvLL._SL75_.jpg&isbn13=9780307272508&isbn=0307272508&title=The+Third+Rail

有什么办法可以使参数不显示在URL上吗?

解决方法

也许您可以对参数进行编码并在控制器中对其进行解码,以阻止可能需要修改URL的用户?可能会过分杀人,但… @H_301_2@>> author=ActiveSupport::Base64.encode64("author=jim") => "YXV0aG9yPWppbQ==\n" >> ActiveSupport::Base64.decode64(author) => "author=jim"

猜你在找的Ruby相关文章