Ruby on rails 未设置URL缩写器随机id
我是一个Rails新手,在尝试编写Rails shortener应用程序时遇到了问题 我正在Youtube上观看该应用程序的教程,网址为: 有人能帮我理解从新操作到创建的流程控制吗?我不理解新操作、将数据输入表单和创建操作是如何工作的 我在新动作中设置了一个绑定撬杆。当程序点击binding.pry时,这是存储在参数中的内容。在点击新动作时,原始id的表单中没有输入任何内容Ruby on rails 未设置URL缩写器随机id,ruby-on-rails,Ruby On Rails,我是一个Rails新手,在尝试编写Rails shortener应用程序时遇到了问题 我正在Youtube上观看该应用程序的教程,网址为: 有人能帮我理解从新操作到创建的流程控制吗?我不理解新操作、将数据输入表单和创建操作是如何工作的 我在新动作中设置了一个绑定撬杆。当程序点击binding.pry时,这是存储在参数中的内容。在点击新动作时,原始id的表单中没有输入任何内容 17: def new 18: @url = Url.new 19: 20: le
17: def new
18: @url = Url.new
19:
20: letters = [('a'..'z'), ('A'..'Z')].map { |l| l.to_a }.flatten
21: @url.random_id = (0...8).map { letters[rand(letters.length)] }.join
=> 22: binding.pry
23: end
[1] pry(#<UrlsController>)> @url.random_id
=> "ogEJCcHm"
[2] pry(#<UrlsController>)> @url.original
=> nil
[3] pry(#<UrlsController>)> params
=> {"action"=>"new", "controller"=>"urls"}
[4] pry(#<UrlsController>)>
我的新.html.erb文件中包含以下内容:
<%= form_for @url do |f| %>
<%= f.label :original %> : <%= f.text_field :original %>
<p>
<%= f.hidden_field :random_id, :value => @url_random_id %>
</p>
<p>
<%= f.submit "Shorten my Url" %>
</p>
<% end %>
:
@url\u随机\u id%>
提前感谢您在帮助我理解我做错了什么方面提供的任何帮助
如果您需要关于我尝试做什么的任何其他信息,请告诉我 更改为
<%= f.hidden_field :random_id, :value => @url.random_id %> # note the dot, to match what you set in the controller.
这非常有效。似乎无论表单中输入的URL长度如何,@random_id始终为8个字符。如果将算法设置为5个字符而不是8个字符,则缩短URL的长度将始终为5个字符而不是8个字符。对吗?谢谢你的及时回复。谢谢你的帮助!
<%= form_for @url do |f| %>
<%= f.label :original %> : <%= f.text_field :original %>
<p>
<%= f.hidden_field :random_id, :value => @url_random_id %>
</p>
<p>
<%= f.submit "Shorten my Url" %>
</p>
<% end %>
<%= f.hidden_field :random_id, :value => @url.random_id %> # note the dot, to match what you set in the controller.
@url = Url.new(params[:url]) # contains params[:url][:random_id]