将变量传递给Rails with Content中的Fancybox

时间:2013-01-26 17:20:33

标签: ruby-on-rails ruby-on-rails-3.1 fancybox

我在Rails中有这个链接:

<%= link_to "Add to Journal", add_post_journal_path(post), :method => :put %>

但是,我希望转换此链接以显示包含我要选择的内容的内容的fancybox。首先,我使用此代码:

<%= link_to "fancy", "#add_post", :class=>"fancybox" %>

但我有错误,因为我想将实际帖子传递给fancybox,所以我使用的是这段代码:add_post.html.erb

<h1>Escolha o Jornal que deseja adicionar:</h1>
<ul>
<% current_user.journals.each do |journal| %>
  <li><%= link_to journal.name,add_post_complete_journal_path(journal),:remote=>true %> </li>
<% end %>
</ul>

我的控制器是:

def add_post
  @journal_post = JournalsPosts.new
  session[:post_add] = params[:id]
end

def add_post_complete
  @journal_post = JournalsPosts.create(:post_id => session[:post_add],:journal_id => params[:id])

  respond_with @journal_post
end

如何转换此代码以在我的fancybox中使用我的内容?

1 个答案:

答案 0 :(得分:3)

添加你的行动add_post下一个用js回复:

def add_post
    @journal_post = JournalsPosts.new
    session[:post_add] = params[:id]
    respond_to do |format|
      format.js
    end
  end

使用下一个内容添加您的观看add_post.js.erb上的文件:

$.fancybox('<%= escape_javascript(render(:partial => 'path_to/add_post'))%>',
  {
    openEffect: "fade",
    closeEffect: "fade",
    autoSize: true,
    minWidth: 480,
    scrolling: 'auto',
  });

例如,您在视图中添加了部分_add_post.html.erb。现在在这部分内部,您可以编写代码视图:

#code for your view inside partial `add_post.html.erb`
<%= @journal_post %>
<h1>Escolha o Jornal que deseja adicionar:</h1>
<ul>
 .
 .

问候!