[英]Passing data from view to controller in rails
我有一个问题,在我的Rails应用程序中,我有一个控制器,负责存储与表单相关的信息,在该控制器中,我写了标题和project_id,因为此表单创建了一张Redmine票。
现在,我希望在其他视图(管理视图)中可以更改标题,并且在创建票证时,该标题与管理视图中存在的标题相同。
我将您想要的控制器和示例发送给您:
class RedmineController < ApplicationController
# Creating an issue
def new
@issue = Issue.new
end
def create
#stock le issue description.
original_redmine = params[:issue] && params[:issue][:nom_redmine]
original_admin = params[:issue] && params[:issue][:nom_admin]
original_email = params[:issue] && params[:issue][:email]
# le modifie
#Titre du ticket
@admin_title = params[:issue][:admin_title]
params[:issue][:subject] = @admin_title
#Project_id :
params[:issue][:project_id] = "1"
#Description :
params[:issue][:description] = "
Nom de l'instance Redmine : http://#{original_redmine}.projet.appli.i2
Nom de l'admin : #{original_admin}
Email : #{original_email}"
@issue = Issue.new(params[:issue])
if @issue.save
flash[:succes] = "Ticket cree"
redirect_to root_path
else
flash[:avertissement] = "Tout les champs sont obligatoires"
redirect_to redmine_path
end
end
end
这就是我的控制者,现在我希望问题标题是在我的管理表单中写的标题
我的控制器表单视图
<div class="section-index">
<h2 class="title-edit-new">Creation d'instance Redmine</h2>
<%flash.each do |key,msg| %>
<%= content_tag(:div, content_tag(:p,msg), :class =>"message #{key}") %>
<% end %>
<%= form_for @issue, :url => redmine_path do |form| %>
<fieldset class="fields">
<div class="php_form">
<%= form.label :nom_redmine, "Nom de l'instance redmine : ", :class => 'label-php-redmine' %>
<div class="input-php">
htpp://<%= form.text_field :nom_redmine %>.projet.appli.i2
</div>
</div>
<div class="php_form">
<%= form.label :nom_admin, "Nom de l'admin redmine : ", :class => 'label-php-admin'%>
<div class="input-php">
<%= form.text_field :nom_admin %>
</div>
</div>
<div class="php_form">
<%= form.label :email, "Email :", :class =>'label-php-email' %>
<div class="input-php">
<%= form.email_field :email %>
</div>
</div>
<div class="php_form">
<%= form.label :priority_id, 'Priorité : ', :class => 'label-php-priorite' %>
<div class="input-php">
<%= form.select :priority_id, options_for_select({ "Bas" => "1", "Normal" => "2", "Haut" => "3", "Urgent" => "4", "Immediat" => "5" }, "2") %>
</div>
</div>
</fieldset>
<fieldset class="actions">
<%= form.submit "Envoyé", :class => 'btn btn-primary submit-input submit-php ' %>
</fieldset>
<% end %>
</div>
但是知道我想创建一个其他视图,其中@admin_title的值是否有库存,但是如何命名该视图以及在何处创建呢? 在新文件夹和同一文件夹中?
我希望我的问题很清楚。
编辑
我添加我的控制器:
before_filter :set_admin_title, :only => [:create,admin_function]
和
def set_admin_title
@admin_title = params[:issue][:admin_title]
end
def admin_function
puts @admin_title
end
现在,我将如何创建我的视图以使用form.text_field设置admin_title。 我需要在数据库中存储我的标题。 并用他在我的方法中创建。
我可以建议您将参数从视图传递到控制器<%= form.text_field :admin_title %>
在控制器中
您可以访问该主题
@admin_title = params[:issue][:admin_title]
params[:issue][:subject] = @admin_title
希望我能理解你的问题
然后,您可以创建一种类似钩子的方式来设置@admin_title
before_filter :set_admin_title, :only => [:create,your_other_ function]
def set_admin_title
@admin_title = params[:issue][:admin_title]
end
现在您可以访问它
def your_other_function
puts @admin_title
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.