gpt4 book ai didi

ruby-on-rails - rails : Adding to model after user submits form

转载 作者:数据小太阳 更新时间:2023-10-29 08:39:37 25 4
gpt4 key购买 nike

在我的 Rails 3.2 项目中,我有一个用于在 app/views/posts/ 中的 new.html.erb 中创建新帖子的表单

<%= form_for(@post) do |post_form| %>
...
<div class="field">
<%= post_form.label :title %><br />
<%= post_form.text_field :title %>
</div>
<div class="field">
<%= post_form.label :content %><br />
<%= post_form.text_field :content %>
</div>
<div class="actions">
<%= post_form.submit %>
</div>
<% end %>

然后是posts_controller.rb中的create函数

def create
@post = Post.new(params[:post])
if @post.save
format.html { redirect_to @post }
else
format.html { render action: "new" }
end
end

当用户提交帖子时,帖子的titlecontent 被添加到Post 模型中。但是,我还想添加到该帖子的另一个字段。对于字段 random_hash (用户没有指定),我想把它变成一个由 8 个小写字母组成的字符串,其中前 2 个是标题的前 2 个字母,并且最后 6 个是随机的小写字母。我该怎么做?

最佳答案

def create
@post = Post.new(params[:post])
@post.random_hash = generate_random_hash(params[:post][:title])
if @post.save
format.html { redirect_to @post }
else
format.html { render action: "new" }
end
end

def generate_random_hash(title)
first_two_letters = title[0..1]
next_six_letters = (0...6).map{65.+(rand(25)).chr}.join
(first_two_letters + next_six_letters).downcase
end

将其放入您的 Controller 中。您显然必须具有 random_hash 属性才能使 Post 模型工作。

我正在使用 Kent Fredric's solution to generate six random letters.

关于ruby-on-rails - rails : Adding to model after user submits form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com