![](/img/trans.png)
[英]Passing JavaScript variable to ruby-on-rails controller
[英]Cross Controller variables in Ruby-on-Rails
我有一個代碼視圖:
<section>
<h1>
<%= render @client %>
</h1>
<h2>
<%= render @client.telnumbers %>
</h2>
<h3>
<%= link_to 'New Tel', new_telnumber_path, :locals => { :client => @client }, :remote => true %>
</h3>
</section>
但是在我的電話號碼控制器中-變量@client-無我可以看到我的@client嗎?
我的電話號碼控制器:
class TelnumbersController < ApplicationController
def new
@telnumber = Telnumber.new
@telnumber.client_id = @client.id
end
def create
@telnumber = Telnumber.new(params[:telnumber])
render :action => :new unless @telnumber.save
end
end
所以我有錯誤叫id為nil ...
我通過將變量添加到new_telnumber_path中來解決了
在控制器中:
def new
@telnumber = Telnumber.new
@client = Client.find(params[:client_id])
@telnumber.client_id = @client.id
end
謝謝!
默認情況下,每個控制器都繼承自ApplicationController
。 您可以在此處放置一個before_filter
,以分配要在許多(或每個)控制器中使用的變量。
這是一個例子:
class ApplicationController < ActionController::Base
before_filter :set_client
private
def set_client
# set the @client variable: load client from session or whatever your app logic is
end
end
您可以在此處閱讀有關Rails中控制器過濾器的更多信息: http : //guides.rubyonrails.org/action_controller_overview.html#filters
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.