Tag: 形成

在Rails中通过1个表单编辑嵌套集合

我正在尝试创建一个表单,我可以在一个视图中单独编辑集合中的所有项目。 我使用Railscast#198( http://railscasts.com/episodes/198-edit-multiple-individually )作为一般指南,但没有包含复选框,因为我只想一次编辑集合中的每个项目(不是选择)哪些要编辑)。 根据我目前的情况,表单显示正确,但我在提交时遇到此类错误: ArgumentError in ProceduresController#update_procedures wrong number of arguments (0 for 2). Parameters: {“utf8″=>”✓”, “_method”=>”put”, “authenticity_token”=>”i9kB+uGlguerjxl0VHy1dRyMY5HrZQdILVuM79Df4Z4=”, “procedures”=>{“1″=>{“description”=>”Example1”}, “2”=>{“description”=>”Example2”}}, “commit”=>”Submit”, “comp_id”=>”1”} 请告诉我这里缺少的东西: 在我的控制器中: def edit_procedures @comp = Comp.find(params[:comp_id]) @procedures = @comp.procedures.all end def update_procedures @comp = Comp.find(params[:comp_id]) @procedures = @comp.procedures.update.(params[:procedures].keys, params[:procedures].values).reject { |p| p.errors.empty? } end 在我的路线: resources :comps do resources :procedures do […]

更新行动似乎无能为力

目前,我有一个带有这样的方法的overtime_definition_controller class Edms::OvertimeDefinitionsController ‘search_overtime’ end end def edit @flag = params[:flag] @overtime = OvertimeDefinition.find(params[:id]) @employee = Employee.find(params[:employee_id]) end def update @employee = Employee.find(params[:id]) @overtime = OvertimeDefinition.find(params[:id]) if @overtime.update_attributes(params[:overtime_definition]) flash[:notice] = “Overtime Successfully Updated for #{@employee.name}” redirect_to :action => ‘search_overtime’ else render :action => ‘edit’,:flag=>params[:flag] end end def search_overtime @overtimes = OvertimeDefinition.all @departments = @site.is_central ? […]

将对象从视图传递到控制器

有没有办法将对象(特别是视图中使用的form_builder对象)传递给控制器​​中的操作? 我正在使用link_to_remote并希望更新控制器中的变量,然后通过render:update块将新的嵌套表单元素添加到我的表单中。 如果我将它作为参数传递,它将转换为字符串,我似乎无法成功地将本地哈希传递给控制器​​。

rails 5 form_tag具有原始DB值,并且在表单中进行新选择后,必须更新两个记录

我有一个带有radio_button_tag的form_tag,它填充了来自DB的数据。 它必须简单地定向到自定义更新操作(update_multiple),其中为表单中已更改的所有2条记录更新布尔列。 例如,当最初从DB填充表单并选择记录1的单选按钮时,现在用户将其选择更改为记录3,然后在提交表单标记时必须更新两个记录,但问题是提交时的代码,仅收集现在在该组中选择的记录的ID。如何获取该记录的id也未被选中,以便我可以一次性更新两个这些记录? 如果提交无法处理此操作,那么控制器或表单中是否有一种方法可以在填充表单之前保留初始选定记录的ID? 如您所见,我尝试使用radio_button_tag收集一组ids []。 TIA的帮助。 这是表单代码: Select a CV Resume Name params[:main] %> ‘button’ %> 这是控制器update_multiple代码。 def update_multiple CvAttachment.update_all([“updated_at=?”, Time.now], :id => params[:cv_attachment_ids]) 结束

Rails Paperclip与模型关联

我有一个页面,我可以在其中查看产品,并且可以直接从该页面添加和删除与产品关联的多个图像。 我在表单中使用paperclip来上传新文件。 因为可以为产品保存多个图像,所以我创建了属于产品模型的图像模型。 由于关联,无法使用默认回形针文件输入。 下面我的解决方案正在运行,但我想知道是否有更好的方法在rails中完成此操作而没有我所黑的所有html使其工作。 class Image < ActiveRecord::Base belongs_to :product class Product < ActiveRecord::Base has_many :images, :dependent => :destroy accepts_nested_attributes_for :images, :allow_destroy => true show.html.erb { :multipart => true }) do |f| %> <input id="image" name="product[images_attributes][][photo]” >size=”30″ type=”file” onchange=”this.form.submit();” />

Rails 5 – 从父控制器上的编辑路径中排除特定实例

我在我的Rails 5应用程序中有用户,提案和潜力的模型。 用户创建提案,然后他们自己和其他人可以创建评论。 模型之间的关联是: 用户 has_many :proposals, dependent: :destroy has_many :potentials 提案 belongs_to :user has_many :potentials, inverse_of: :proposal accepts_nested_attributes_for :potentials, reject_if: :all_blank, allow_destroy: true 潜在 belongs_to :proposal, inverse_of: :potentials belongs_to :user 在我的路线文件中,我有两个潜在的资源。 我不确定我是否已经离开了滑雪道 – 我无法找到一个如何做到这一点的例子。 我有两个: resources :potentials 以及: resources :proposals do resources :potentials 我这样做的原因是,当用户创建提案时,他们可以使用嵌套字段表单来添加潜在属性。 当另一个用户看到该提案时,他们会获得一个新表单来添加:潜在的属性集(他们不会通过提案表单执行此操作)。 在我的潜力视图文件夹中,我有新的渲染forms的视图以及我的提案表单中包含的potential_fields_for(只有提案创建者可以使用嵌套字段)。 新/渲染表单有: f 提案表格包括: 在我的提案控制器中,我正试图找到一种方法来排除第三方创建:来自提案表单中显示的字段的潜力。 def edit @proposal.potentials_build unless […]

表单标记未显示在haml文件中

我想在一个模态中得到一个表单。 表单标签后的所有内容都会显示,但不能提交实际的表单标签。 我在其他页面中使用相同的表单,除了这里外它确实有用。 AdGroups/edit.html.haml %div(id=”openModal” class=”modalDialog”) %div %a(href=”#close” title=”Close” class=”close”) %div = form_tag car_path, :url => {:controller => ‘cars’, :action => ‘create’}, :html => {:multipart => true,:id =>’car-form’} do |f| %div(class=”control-group”) = label_tag “Year” %br = text_field_tag “year” %br %div(class=”control-group”) = label_tag “make” %br %select{ :name => “make”, :class => “chosen” } – @makes.each do […]

Rails形成三个模型和命名空间

很长一段时间,我一直反对这个。 在Rails 2.3.2,Ruby 1.9.1上。 尝试使用一个表单来创建具有这些关系的三个对象: class Person has_one :goat end class Goat belongs_to :person has_many :kids end class Goat::Kid belongs_to :goat end 这是架构的摘要: Person first_name last_name Goat name color Goat::Kid nickname age 我希望我的#create动作能够使用指定的关联来实例化所有三个模型的新实例。 然而,虽然看起来我的params散列正在传递给控制器​​(基于浏览器中的回溯日志), Goat::Kid对象没有收集参数。 irb(irb会话只是我想要完成的伪代表,所以如果它不调用#save!或任何其他必需品,它并不是真正意义上的正确。我试图通过浏览器/网络表单。) a = Person.new :first_name => ‘Leopold’, :last_name => ‘Bloom’ b = Goat.new :name => ‘Billy’, :color => ‘white’ c […]

不能允许具有强参数的自定义参数

我想允许嵌套的自定义参数,但不知道如何访问它们。 这些是我的参数: params=> {“utf8″=>”✓”, “authenticity_token”=>”…”, “tracking”=>{“installation”=>”4”, “code”=>[{“1″=>”one”, “2”=>”two”}]}, “action”=>”create”, “controller”=>”admin/trackings”} 根据Strong Parameters文档,我尝试了一些像这样的组合: def tracking_params params.require(:tracking).permit(:installation, code: []) end 但他们没有工作。 我错过了什么?

如何处理非模型Rails表单中的日期字段?

我正在创建一个非模型对象,它将通过使用ActiveModel与Rails表单构建器一起使用。 这是一个Rails 3项目。 这是我到目前为止的一个例子: class SalesReport include ActiveModel::Validations include ActiveModel::Conversion extend ActiveModel::Naming attr_accessor :promotion_code, :start_date, :end_date def initialize(attributes = {}) attributes.each do |name, value| send(“#{name}=”, value) end end def persisted? false end end 我碰巧使用HAML和simple_form,但这并不重要。 最后,我只是使用标准的Rails日期选择字段: = simple_form_for [:admin, @report], as: :report, url: admin_reports_path do |f| = f.input :promotion_code, label: ‘Promo Code’ = f.input :start_date, as: […]