【发布时间】:2018-05-30 17:50:50
【问题描述】:
我有一个具有许多属性的目标模型。
一旦一个目标完成,它会在按下按钮时被标记为完成,然后重定向到一个新表单,该表单可以为目标模型添加额外的属性。
对我来说,将它们存储在目标模型中是有意义的,因为它们只与目标相关联,但是,我无法让它正常工作,因为我总是得到参数丢失或值为空:目标。
目标参数用作标准 CRUD 参数。
goal_review_params 在目标完成后使用。
这是否可以在“更新”操作之外进行?
控制器:
class GoalsController < ApplicationController
before_action :authenticate_user!, except: [:index, :show, :completedgoals]
before_action :set_goal, only: [:show, :edit, :update, :destroy, :mark_completed, :goal_completed ]
def goal_completed
@authorize
if @goal.update(goal_review_params)
format.html { redirect_to @goal, notice: 'Goal review was successfully updated.' }
format.json { render :show, status: :ok, location: @goal }
else
format.html { redirect_to goal_completed_goal_path(@goal) }
format.json { render json: @goal.errors, status: :unprocessable_entity }
end
end
private
def set_goal
@goal = Goal.find(params[:id])
end
#category_ids:[] needs to be added back to goal_params when they're added back in
def goal_params
params.require(:goal).permit(:goalname, :goaldesc, :goalhow, :goalwhy, :goalreward, :goalduedate, :goalstatus )
end
def goal_review_params
params.require(:goal).permit(:goaldifficult, :goallearned, :goalnext)
end
查看:
<%= form_for (@goal) do |form| %>
<div class="col-md-12 goalform">
<%= form.label :goaldifficult, value: "Name your Goal" %><br>
<%= form.text_field :goaldifficult, :rows => 2, style: 'width:80%;',
placeholder: "...'" %>
</div>
<div class="col-md-12 goalform">
<%= form.label :goallearned, value: "Name your Goal" %><br>
<%= form.text_field :goallearned, :rows => 2, style: 'width:80%;',
placeholder: "...'" %>
</div>
<div class="col-md-12 goalform">
<%= form.label :goalnext, value: "Name your Goal" %><br>
<%= form.text_field :goalnext, :rows => 2, style: 'width:80%;',
placeholder: "...'" %>
</div>
<div class="col-md-12 goalform">
<%= form.submit class:"btn btn-primary" %>
</div>
路线:
resources :goals do
...
member do
get 'goal_completed', to: 'goals#goal_completed', as: 'goal_completed'
【问题讨论】:
-
您可以在执行您提到的
create和update操作后转储控制台日志(使用params)吗? -
这听起来像是 StrongParameters 的问题以及您的表单发布的任何内容。您能否提供有关 GoalsController#goals_completed 操作的完整 Rails 日志?
标签: ruby-on-rails ruby forms parameters