I am displaying all the records from db in the form of HTML table along with edit button. On, click of edit button it redirects to edit view which will display the additional columns.
Here, I was showing save button in edit form for all the rows/records. Is there a way to prevent so that I can just show to the one I selected in index form.
Also, after updating the fields how do I save the record and redirect to index view.
Please find the code snippets below:
metrics_controller.rb:
class MetricsController < ApplicationController
def index
@metricAll = Metric.all
end
def show
@metric = Metric.find(params[:id])
end
def edit
@metric = Metric.find(params[:id])
@metricAll = Metric.all
end
def create
@metric = Metric.new(post_params)
if(@metric.save)
redirect_to @metric
else
render 'new'
end
end
def update
@metric = Metric.find(params[:id])
if(@metric.update_attributes(post_params))
redirect_to @metric
else
render 'edit'
end
end
private def post_params
params.require(:metric).permit(:Metric, :WI, :Value, :UT, :Score, :IsValid, :UserName, :Comments)
end
end
edit.html.rb:
<%= form_for :metrics_controller, url: metric_path(@metric), method: :patch do |f| %>
<table id="metrics">
<thead>
<tr id="AllMetricColumnNames">
<th id="Metric"><div>Metric</th>
<th id="WI">WI</th>
<th id="Value">Value</th>
<th id="UT">UT</th>
<th id="Score">Score</th>
<th id="IsValid">IsValid</th>
<th id="UserName">UserName</th>
<th id="Comments">Comments</th>
<th id="EditColumn">Edit</th>
</tr>
</thead>
<% @metricAll.each do |data| %>
<tr id="AllMetricValues">
<td id="Value"><%= data.Metric %></td>
<td id="WI"><%= data.WI %></td>
<td id="Value"><%= data.Value %></td>
<td id="UT"><%= data.UT %></td>
<td id="Score"><%= data.Score %></td>
<td><%= f.select :IsValid, options_for_select(['True', 'False']), :include_blank => true, :class => 'chosen-select', :required => true, value: data.IsValid %></td>
<td id="UserName"><%= data.UserName %></td>
<td id="Comments"><%= f.text_field :Comments, value: data.Comments %></td>
<td id="SaveButton"><%= f.submit "Save" %></td>
<% end %>
</tr>
</table>
<% end %>
Aucun commentaire:
Enregistrer un commentaire