1

我在 Rails 中有这个链接:

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

但是,我想转换此链接以显示一个精美的框,其中包含列出我要选择的内容的内容。首先,我使用以下代码:

<%= 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

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

4

1 回答 1

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>
 .
 .

问候!

于 2013-01-26T17:31:49.090 回答