在新方法中重新渲染部分在轨道上的ruby中

时间:2017-07-04 12:16:40

标签: ruby-on-rails

我是学生实习生,我必须改进公司的网站。我在Ruby on Rails中创建了一个部分,我想在同一页面上多次使用它。我有一些导航标签,根据活动标签,相同的部分应显示不同的参数。 我想要做的是在用户更改活动选项卡时重新呈现我的部分。所以我在网上搜索了如何使用rails和js重新渲染部分,似乎我必须使用ajax(在rails中使用respond_to)。所以我做了它,在网站的其他地方也有类似的东西,但它对我不起作用,我很确定,这是一个路由问题,因为在网站上它是&#39 ; s在特定页面上完成(例如beneficiaries/1),但我必须在stories/new

上完成

这是调用函数重新呈现代码的链接:

= link_to 'Activities', modify_tab_new_project_story_path(@project), method: :post, remote: true, :style => 'text-align: center;'

然后在routes.rb文件中:(我尝试了很多不同的东西,但没有一个工作)

resources :projects, only: [:show, :destroy] do
  resources :stories do
     post :modify_tab, on: :new
  end
end

我的控制器:

def change_tab
    respond_to do |format|
      format.js
    end
  end

最后我被重定向到:

http://localhost:3000/projects/issue-1004/stories/new/modify_tab

而不是停留在同一页面。

另外 I get this error

而我使用方法post。

我的大脑真的很困惑,所以我可能犯了一些错误。

在网站上运作的东西:

以下是观点:

= form_tag create_note_charity_beneficiaries_path(@charity), method: :post, remote: true, id: 'note_form' do

然后是routes.rb:

resources :charities, except: :index do
    resources :beneficiaries do
      collection do
        post :create_note
      end
    end
  end

最后是控制器:

def create_note
    note = Note.create(params[:note])
    @beneficiary = note.beneficiary
    respond_to do |format|   
      format.js
    end
  end

还有一个create_note.js.erb文件,我也创建了一个,但问题出现在这个文件之前,所以我没有把它放在这里。

希望有人能帮助我

由于

0 个答案:

没有答案