好的......所以我得到:title和:content with form_for helper并将它们保存在我的模型中,发布。
但是,我想为发布的每个人提供随机昵称。
我制作了一个简单的名片制作者,但不知道如何将这些数据与每个帖子一起添加。
(1)这是form_for(:title,:content)
的代码<section class = 'form' id = 'main_form'>
<p>
<%= form_for @post do |f| %>
<div class = 'form_input'>
<%= f.text_field :title, style: "width: 70%; color: black;", placeholder: 'Write your title' %> <br>
<%= f.text_area :content, rows: 10, style: "width: 70%; color:black;", placeholder: 'Write your content.' %> <br>
</div>
<div class = 'form_submit'>
<%= f.submit('Submit!') %>
</div>
<% end %>
</p>
(2)这是我随机Namemaker的代码
pre = ['gentle', 'funny', 'sleepy', 'horny', 'stupid']
suff = ['crocodile', 'lion', '9gager', 'cat', 'dog']
name = pre[rand(4)] + suff[rand(4)]
我应该如何添加这个&#39;名称&#39;每次使用form_for的数据? 我应该把它们放在哪里?我应该在控制器中做一个新动作吗?
总结如下:如果您在获取:title /:content with&#39; form_for&#39;之后必须为每个帖子提供一个随机名称,您会怎么做? ? 这基本上就是我所要求的
答案 0 :(得分:0)
实现此目的的一种方法是在控制器创建操作中添加自定义名称以发布params。如果你使用强params(你应该使用)。它看起来像这样:
public static String replace(String x) { //Cleans the single quotes
String replaced = x;
if (replaced.contains("'")) {
replaced = x.replaceAll("'", "\\\\'");
}
return replaced;
}
public static String removeEnters(String x){ //Removes any enters
String replaced = x;
if(replaced.contains("\n") || x.contains("\r")){
replaced = x.replaceAll("\\r\\n|\\r|\\n", " ");
}
return replaced;
}
另一种方法是使用<?php
header("Content-Type: application/json");
$con=mysqli_connect("localhost","123","123!!","123");
$menu_main_item_store_id = file_get_contents('php://input');
$menu_main_item_store_id_received = $menu_main_item_store_id;
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT * FROM menu_main_items WHERE menu_main_item_store_id=$menu_main_item_store_id_received AND menu_main_item_in_use_check = 'yes'";
if ($result = mysqli_query($con, $sql)) {
$resultArray = array();
$tempArray = array();
while($row = $result->fetch_object()){
$tempArray = $row;
array_push($resultArray, $tempArray);
}
echo json_encode($resultArray);
}
mysqli_close($con);
?>
回调:
def create
post = Post.new(post_params.merge(name: your_random_name))
if post.save?
# ...
end