更新值而不刷新rails中的页面



我必须在不刷新页面的情况下保存用户值。到目前为止,我已经创建了一个保存按钮,但点击按钮后,页面正在刷新。我需要删除刷新。

这是我的表格:

<div class="parent">
<%= form_for(:display , url: 'display',method: :put) do |f| %>
<select name="display[display]" id="display_display">
<option hidden><%= data['display']%></option>
<option value="false">false</option>
<option value="true">true</option></select>
<%= f.hidden_field :id, value: field_id%>                   
<button type="submit" class="round-6" href="/">✔</button>
<%end%>
</div>

这就是它的名字:

put '/fields/display', to:'fields#display'

这是它的控制器:

def display
@field = Api::AnalyticsQueryBuilderMetadataService::Field.update_field_display(params.require(:display).permit(:display,:id))
end

这是我的update_field_displaymethod:

def self.update_field_display(params)
id = params[:id]
value = {'display' => params[:display] }
response = Api::Connection.edit_request('fields',id, value)
end

这是我的edit_request方法:

def edit_request(type,id, params)
response = connection.put("#{type}/#{id}", params)

rescue Faraday::Error => e
Rails.logger.error "Connection Failed #{e}"
nil
end

这是我的连接请求呼叫:

def connection
Faraday.new(url: ENV['URL'],
params: { clientId: ENV['CLIENT_ID'] },
headers: { 'Authorization' => oauth_token_generation })
end

如何通过刷新页面来保存api调用上的值。

您可能希望在控制器update方法中渲染相同的视图,因为渲染不会重定向并保持当前视图的完整

代码:

def update
@user = User.find(params[:id])
if @entity.save(entity_params)
render :edit, notice: 'saved'
else
render :edit, alert: 'cant edit'
end
end

无需刷新页面,即可使用Action Cable。我想是okie。https://guides.rubyonrails.org/action_cable_overview.html

最新更新